Skip to content

Commit efadccb

Browse files
Merge pull request #533 from appwrite/feat-fix-dart-models
Fix Flutter/Dart model issues
2 parents 28fcf77 + ee63889 commit efadccb

22 files changed

+100
-404
lines changed

composer.lock

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/SDK/Language/Dart.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -350,13 +350,13 @@ public function getFiles()
350350
[
351351
'scope' => 'default',
352352
'destination' => '/lib/role.dart',
353-
'template' => 'flutter/lib/role.dart.twig',
353+
'template' => 'dart/lib/role.dart.twig',
354354
'minify' => false,
355355
],
356356
[
357357
'scope' => 'default',
358358
'destination' => '/lib/id.dart',
359-
'template' => 'flutter/lib/id.dart.twig',
359+
'template' => 'dart/lib/id.dart.twig',
360360
'minify' => false,
361361
],
362362
[
@@ -401,6 +401,12 @@ public function getFiles()
401401
'template' => 'dart/lib/src/enums.dart.twig',
402402
'minify' => false,
403403
],
404+
[
405+
'scope' => 'default',
406+
'destination' => '/lib/src/models/model.dart',
407+
'template' => 'dart/lib/src/models/model_base.dart.twig',
408+
'minify' => false,
409+
],
404410
[
405411
'scope' => 'default',
406412
'destination' => '/lib/models.dart',

src/SDK/Language/Flutter.php

Lines changed: 78 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,84 @@ public function getName()
2525
public function getFiles()
2626
{
2727
return [
28+
[
29+
'scope' => 'default',
30+
'destination' => '/lib/src/response.dart',
31+
'template' => 'dart/lib/src/response.dart.twig',
32+
'minify' => false,
33+
],
34+
[
35+
'scope' => 'default',
36+
'destination' => '/lib/src/service.dart',
37+
'template' => 'dart/lib/src/service.dart.twig',
38+
'minify' => false,
39+
],
40+
[
41+
'scope' => 'default',
42+
'destination' => '/lib/src/models/model.dart',
43+
'template' => 'dart/lib/src/models/model_base.dart.twig',
44+
'minify' => false,
45+
],
46+
[
47+
'scope' => 'default',
48+
'destination' => '/lib/src/enums.dart',
49+
'template' => 'dart/lib/src/enums.dart.twig',
50+
'minify' => false,
51+
],
52+
[
53+
'scope' => 'default',
54+
'destination' => '/lib/src/exception.dart',
55+
'template' => 'dart/lib/src/exception.dart.twig',
56+
'minify' => false,
57+
],
58+
[
59+
'scope' => 'default',
60+
'destination' => '/lib/src/upload_progress.dart',
61+
'template' => 'dart/lib/src/upload_progress.dart.twig',
62+
'minify' => false,
63+
],
64+
[
65+
'scope' => 'default',
66+
'destination' => '/lib/models.dart',
67+
'template' => 'dart/lib/models.dart.twig',
68+
'minify' => false,
69+
],
70+
[
71+
'scope' => 'default',
72+
'destination' => '/lib/permission.dart',
73+
'template' => 'dart/lib/permission.dart.twig',
74+
'minify' => false,
75+
],
76+
[
77+
'scope' => 'default',
78+
'destination' => '/lib/role.dart',
79+
'template' => 'dart/lib/role.dart.twig',
80+
'minify' => false,
81+
],
82+
[
83+
'scope' => 'default',
84+
'destination' => '/lib/id.dart',
85+
'template' => 'dart/lib/id.dart.twig',
86+
'minify' => false,
87+
],
88+
[
89+
'scope' => 'default',
90+
'destination' => '/lib/query.dart',
91+
'template' => 'dart/lib/query.dart.twig',
92+
'minify' => false,
93+
],
94+
[
95+
'scope' => 'definition',
96+
'destination' => '/lib/src/models/{{definition.name | caseSnake }}.dart',
97+
'template' => 'dart/lib/src/models/model.dart.twig',
98+
'minify' => false,
99+
],
100+
[
101+
'scope' => 'default',
102+
'destination' => 'lib/src/input_file.dart',
103+
'template' => 'dart/lib/src/input_file.dart.twig',
104+
'minify' => false,
105+
],
28106
[
29107
'scope' => 'default',
30108
'destination' => 'README.md',
@@ -163,12 +241,6 @@ public function getFiles()
163241
'template' => 'flutter/lib/src/interceptor.dart.twig',
164242
'minify' => false,
165243
],
166-
[
167-
'scope' => 'default',
168-
'destination' => '/lib/src/response.dart',
169-
'template' => 'flutter/lib/src/response.dart.twig',
170-
'minify' => false,
171-
],
172244
[
173245
'scope' => 'default',
174246
'destination' => '/lib/{{ language.params.packageName }}.dart',
@@ -205,78 +277,12 @@ public function getFiles()
205277
'template' => 'flutter/pubspec.yaml.twig',
206278
'minify' => false,
207279
],
208-
[
209-
'scope' => 'default',
210-
'destination' => '/lib/src/service.dart',
211-
'template' => 'flutter/lib/src/service.dart.twig',
212-
'minify' => false,
213-
],
214-
[
215-
'scope' => 'default',
216-
'destination' => '/lib/src/models/model.dart',
217-
'template' => 'flutter/lib/src/models/model_base.dart.twig',
218-
'minify' => false,
219-
],
220-
[
221-
'scope' => 'default',
222-
'destination' => '/lib/src/enums.dart',
223-
'template' => 'flutter/lib/src/enums.dart.twig',
224-
'minify' => false,
225-
],
226-
[
227-
'scope' => 'default',
228-
'destination' => '/lib/src/exception.dart',
229-
'template' => 'flutter/lib/src/exception.dart.twig',
230-
'minify' => false,
231-
],
232-
[
233-
'scope' => 'default',
234-
'destination' => '/lib/src/upload_progress.dart',
235-
'template' => 'dart/lib/src/upload_progress.dart.twig',
236-
'minify' => false,
237-
],
238-
[
239-
'scope' => 'default',
240-
'destination' => '/lib/models.dart',
241-
'template' => 'flutter/lib/models.dart.twig',
242-
'minify' => false,
243-
],
244-
[
245-
'scope' => 'default',
246-
'destination' => '/lib/permission.dart',
247-
'template' => 'flutter/lib/permission.dart.twig',
248-
'minify' => false,
249-
],
250-
[
251-
'scope' => 'default',
252-
'destination' => '/lib/role.dart',
253-
'template' => 'flutter/lib/role.dart.twig',
254-
'minify' => false,
255-
],
256-
[
257-
'scope' => 'default',
258-
'destination' => '/lib/id.dart',
259-
'template' => 'flutter/lib/id.dart.twig',
260-
'minify' => false,
261-
],
262-
[
263-
'scope' => 'default',
264-
'destination' => '/lib/query.dart',
265-
'template' => 'flutter/lib/query.dart.twig',
266-
'minify' => false,
267-
],
268280
[
269281
'scope' => 'service',
270282
'destination' => '/lib/services/{{service.name | caseDash}}.dart',
271283
'template' => 'flutter/lib/services/service.dart.twig',
272284
'minify' => false,
273285
],
274-
[
275-
'scope' => 'definition',
276-
'destination' => '/lib/src/models/{{definition.name | caseSnake }}.dart',
277-
'template' => '/flutter/lib/src/models/model.dart.twig',
278-
'minify' => false,
279-
],
280286
[
281287
'scope' => 'method',
282288
'destination' => 'docs/examples/{{service.name | caseLower}}/{{method.name | caseDash}}.md',
@@ -289,12 +295,6 @@ public function getFiles()
289295
'template' => 'flutter/.travis.yml.twig',
290296
'minify' => false,
291297
],
292-
[
293-
'scope' => 'default',
294-
'destination' => 'lib/src/input_file.dart',
295-
'template' => 'flutter/lib/src/input_file.dart.twig',
296-
'minify' => false,
297-
],
298298
];
299299
}
300300
}

templates/dart/lib/models.dart.twig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
library {{ language.params.packageName }}.models;
22

3+
part 'src/models/model.dart';
34
{% for definition in spec.definitions %}
45
part 'src/models/{{definition.name | caseSnake}}.dart';
56
{% endfor %}

templates/dart/lib/src/models/model.dart.twig

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
part of {{ language.params.packageName }}.models;
33

44
/// {{ definition.description }}
5-
class {{ definition.name | caseUcfirst | overrideIdentifier }} {
5+
class {{ definition.name | caseUcfirst | overrideIdentifier }} implements Model {
66
{% for property in definition.properties %}
77
/// {{ property.description }}
88
final {% if not property.required %}{{_self.sub_schema(property)}}? {{ property.name | escapeKeyword }}{% else %}{{_self.sub_schema(property)}} {{ property.name | escapeKeyword }}{% endif %};
@@ -11,14 +11,14 @@ class {{ definition.name | caseUcfirst | overrideIdentifier }} {
1111
final Map<String, dynamic> data;
1212
{% endif %}
1313

14-
{{ definition.name | caseUcfirst | overrideIdentifier}}({
14+
{{ definition.name | caseUcfirst | overrideIdentifier}}({% if definition.properties | length or definition.additionalProperties %}{{ '{' }}{% endif %}
1515
{% for property in definition.properties %}{% if property.required %}
1616
required {% endif %}this.{{ property.name | escapeKeyword }},
1717
{% endfor %}
1818
{% if definition.additionalProperties %}
1919
required this.data,
2020
{% endif %}
21-
});
21+
{% if definition.properties | length or definition.additionalProperties %}{{ '}' }}{% endif %});
2222

2323
factory {{ definition.name | caseUcfirst | overrideIdentifier}}.fromMap(Map<String, dynamic> map) {
2424
return {{ definition.name | caseUcfirst | overrideIdentifier }}(

templates/flutter/lib/id.dart.twig

Lines changed: 0 additions & 11 deletions
This file was deleted.

templates/flutter/lib/models.dart.twig

Lines changed: 0 additions & 6 deletions
This file was deleted.

templates/flutter/lib/permission.dart.twig

Lines changed: 0 additions & 19 deletions
This file was deleted.

templates/flutter/lib/query.dart.twig

Lines changed: 0 additions & 44 deletions
This file was deleted.

0 commit comments

Comments
 (0)