Skip to content

Commit dc6720b

Browse files
authored
Merge pull request #1257 from appwrite/fix-enum-rendering
Fix enum rendering in templates and remove enumName fallback hacks
2 parents 991858e + 3f39061 commit dc6720b

File tree

21 files changed

+60
-144
lines changed

21 files changed

+60
-144
lines changed

src/Spec/Swagger2.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ protected function parseMethod(string $methodName, string $pathName, array $meth
229229
$param['default'] = (is_array($param['default']) || $param['default'] instanceof stdClass) ? json_encode($param['default']) : $param['default'];
230230
if (isset($parameter['enum'])) {
231231
$param['enumValues'] = $parameter['enum'];
232-
$param['enumName'] = $parameter['x-enum-name'];
232+
$param['enumName'] = $parameter['x-enum-name'] ?? $param['name'];
233233
$param['enumKeys'] = $parameter['x-enum-keys'];
234234
}
235235

@@ -268,7 +268,7 @@ protected function parseMethod(string $methodName, string $pathName, array $meth
268268

269269
if (isset($value['enum'])) {
270270
$temp['enumValues'] = $value['enum'];
271-
$temp['enumName'] = $value['x-enum-name'];
271+
$temp['enumName'] = $value['x-enum-name'] ?? $temp['name'];
272272
$temp['enumKeys'] = $value['x-enum-keys'];
273273
}
274274

templates/android/docs/java/example.md.twig

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,10 @@ import {{ sdk.namespace | caseDot }}.models.InputFile;
66
import {{ sdk.namespace | caseDot }}.services.{{ service.name | caseUcfirst }};
77
{% set added = [] %}
88
{% for parameter in method.parameters.all %}
9-
{% if method == parameter.required %}
109
{% if parameter.enumValues is not empty %}
11-
{% if parameter.enumName is not empty %}
12-
{% set name = parameter.enumName %}
13-
{% else %}
14-
{% set name = parameter.name %}
15-
{% endif %}
16-
{% if name not in added %}
17-
import {{ sdk.namespace | caseDot }}.enums.{{ name | caseUcfirst }};
18-
{% set added = added|merge([name]) %}
19-
{% endif %}
10+
{% if parameter.enumName not in added %}
11+
import {{ sdk.namespace | caseDot }}.enums.{{ parameter.enumName | caseUcfirst }};
12+
{% set added = added|merge([parameter.enumName]) %}
2013
{% endif %}
2114
{% endif %}
2215
{% endfor %}
@@ -47,17 +40,10 @@ Client client = new Client(context)
4740
}));{% endif %}
4841

4942
{% for parameter in method.parameters.all %}
50-
{%~ if parameter.enumValues is not empty -%}
51-
{%~ if parameter.enumName is not empty -%}
52-
{%~ set name = parameter.enumName -%}
53-
{%~ else -%}
54-
{%~ set name = parameter.name -%}
55-
{%~ endif %}
56-
{{ name }}.{{ (parameter.enumKeys[0] ?? parameter.enumValues[0]) | caseEnumKey }}, // {{ parameter.name }} {% if not parameter.required %}(optional){% endif %}
57-
{%~ else %}
58-
{{ parameter | paramExample }}, // {{ parameter.name }} {% if not parameter.required %}(optional){% endif %}
59-
{%~ endif %}
60-
{%~ if loop.last %}
43+
{% if parameter.enumValues is not empty %}{{ parameter.enumName | caseUcfirst }}.{{ (parameter.enumKeys[0] ?? parameter.enumValues[0]) | caseEnumKey }}, // {{ parameter.name }} {% if not parameter.required %}(optional){% endif %}
44+
{% else %}{{ parameter | paramExample }}, // {{ parameter.name }} {% if not parameter.required %}(optional){% endif %}
45+
{% endif %}
46+
{%~ if loop.last %}
6147

6248
new CoroutineCallback<>((result, error) -> {
6349
if (error != null) {

templates/android/docs/kotlin/example.md.twig

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,10 @@ import {{ sdk.namespace | caseDot }}.models.InputFile
66
import {{ sdk.namespace | caseDot }}.services.{{ service.name | caseUcfirst }}
77
{% set added = [] %}
88
{% for parameter in method.parameters.all %}
9-
{% if method == parameter.required %}
109
{% if parameter.enumValues is not empty %}
11-
{% if parameter.enumName is not empty %}
12-
{% set name = parameter.enumName %}
13-
{% else %}
14-
{% set name = parameter.name %}
15-
{% endif %}
16-
{% if name not in added %}
17-
import {{ sdk.namespace | caseDot }}.enums.{{ name | caseUcfirst }}
18-
{% set added = added|merge([name]) %}
19-
{% endif %}
10+
{% if parameter.enumName not in added %}
11+
import {{ sdk.namespace | caseDot }}.enums.{{ parameter.enumName | caseUcfirst }}
12+
{% set added = added|merge([parameter.enumName]) %}
2013
{% endif %}
2114
{% endif %}
2215
{% endfor %}
@@ -42,13 +35,8 @@ val {{ service.name | caseCamel }} = {{ service.name | caseUcfirst }}(client)
4235
val result = {% endif %}{{ service.name | caseCamel }}.{{ method.name | caseCamel }}({% if method.parameters.all | length == 0 %}){% endif %}
4336

4437
{%~ for parameter in method.parameters.all %}
45-
{%~ if parameter.enumValues is not empty -%}
46-
{%~ if parameter.enumName is not empty -%}
47-
{%~ set name = parameter.enumName -%}
48-
{%~ else -%}
49-
{%~ set name = parameter.name -%}
50-
{%~ endif %}
51-
{{ parameter.name }} = {{ name }}.{{ (parameter.enumKeys[0] ?? parameter.enumValues[0]) | caseEnumKey }},{% if not parameter.required %} // (optional){% endif %}
38+
{%~ if parameter.enumValues is not empty %}
39+
{{ parameter.name }} = {{ parameter.enumName }}.{{ (parameter.enumKeys[0] ?? parameter.enumValues[0]) | caseEnumKey }},{% if not parameter.required %} // (optional){% endif %}
5240
{%~ else %}
5341
{{ parameter.name }} = {{ parameter | paramExample }}, {% if not parameter.required %}// (optional){% endif %}
5442
{%~ endif %}

templates/dart/docs/example.md.twig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Client client = Client()
2222
{% if method.method != 'delete' and method.type != 'webAuth' %}{% if method.type == 'location' %}Uint8List{% else %}{{ method.responseModel | caseUcfirst | overrideIdentifier }}{% endif %} result = {% endif %}await {{ service.name | caseCamel }}.{{ method.name | caseCamel }}({% if method.parameters.all | length == 0 %});{% endif %}
2323

2424
{%~ for parameter in method.parameters.all %}
25-
{{ parameter.name | caseCamel | overrideIdentifier }}: {% if parameter.enumValues | length > 0 %}{{ parameter.enumName }}.{{ (parameter.enumKeys[0] ?? parameter.enumValues[0]) | caseCamel | replace({'-': ''}) }}{% else %}{{ parameter | paramExample | replace({'<field-name>': (parameter.name | caseCamel) }) | raw }}{% endif %},{% if not parameter.required %} // (optional){% endif %}
25+
{{ parameter.name | caseCamel | overrideIdentifier }}: {% if parameter.enumValues | length > 0 %}{{ parameter.enumName | caseUcfirst | overrideIdentifier }}.{{ (parameter.enumKeys[0] ?? parameter.enumValues[0]) | caseEnumKey }}{% else %}{{ parameter | paramExample | replace({'<field-name>': (parameter.name | caseCamel) }) | raw }}{% endif %},{% if not parameter.required %} // (optional){% endif %}
2626

2727
{%~ endfor %}
2828
{% if method.parameters.all | length > 0 %});

templates/deno/src/services/service.ts.twig

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,9 @@ import { Query } from '../query.ts';
3636
{% for method in service.methods %}
3737
{% for parameter in method.parameters.all %}
3838
{% if parameter.enumValues is not empty %}
39-
{% if parameter.enumName is not empty %}
40-
{% set name = parameter.enumName %}
41-
{% else %}
42-
{% set name = parameter.name %}
43-
{% endif %}
44-
{% if name not in added %}
45-
import { {{ name | caseUcfirst }} } from '../enums/{{ name | caseKebab }}.ts';
46-
{% set added = added|merge([name]) %}
39+
{% if parameter.enumName not in added %}
40+
import { {{ parameter.enumName | caseUcfirst }} } from '../enums/{{ parameter.enumName | caseKebab }}.ts';
41+
{% set added = added|merge([parameter.enumName]) %}
4742
{% endif %}
4843
{% endif %}
4944
{% endfor %}

templates/dotnet/docs/example.md.twig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Client client = new Client()
2222
{% if method.method != 'delete' and method.type != 'webAuth' %}{% if method.type == 'location' %}byte[]{% else %}{{ method.responseModel | caseUcfirst | overrideIdentifier }}{% endif %} result = {% endif %}await {{ service.name | caseCamel }}.{{ method.name | caseUcfirst }}({% if method.parameters.all | length == 0 %});{% endif %}
2323
{%~ for parameter in method.parameters.all %}
2424

25-
{{ parameter.name }}: {% if parameter.enumValues | length > 0%}{{ parameter.enumName }}.{{ (parameter.enumKeys[0] ?? parameter.enumValues[0]) | caseEnumKey }}{% else %}{{ parameter | paramExample }}{% endif %}{% if not loop.last %},{% endif %}{% if not parameter.required %} // optional{% endif %}
25+
{{ parameter.name }}: {% if parameter.enumValues | length > 0%}{{ parameter.enumName | caseUcfirst }}.{{ (parameter.enumKeys[0] ?? parameter.enumValues[0]) | caseEnumKey }}{% else %}{{ parameter | paramExample }}{% endif %}{% if not loop.last %},{% endif %}{% if not parameter.required %} // optional{% endif %}
2626
{%~ endfor %}
2727

2828
{% if method.parameters.all | length > 0 %});{% endif %}

templates/flutter/docs/example.md.twig

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Client client = Client()
2323
// Downloading file
2424
Uint8List bytes = await {{ service.name | caseCamel }}.{{ method.name | caseCamel }}(
2525
{%~ for parameter in method.parameters.all %}
26-
{{ parameter.name | caseCamel | overrideIdentifier}}: {% if parameter.enumValues | length > 0%}{{parameter.enumName}}.{{ (parameter.enumKeys[0] ?? parameter.enumValues[0]) | caseEnumKey }}{% else %}{{ parameter | paramExample | replace({'<field-name>': (parameter.name | caseCamel) }) | raw }}{% endif %},{% if not parameter.required %} // optional{% endif %}
26+
{{ parameter.name | caseCamel | overrideIdentifier}}: {% if parameter.enumValues | length > 0%}{{ parameter.enumName | caseUcfirst | overrideIdentifier }}.{{ (parameter.enumKeys[0] ?? parameter.enumValues[0]) | caseEnumKey }}{% else %}{{ parameter | paramExample | replace({'<field-name>': (parameter.name | caseCamel) }) | raw }}{% endif %},{% if not parameter.required %} // optional{% endif %}
2727

2828
{%~ endfor %}{% if method.parameters.all | length > 0 %}{% endif %})
2929

@@ -34,7 +34,7 @@ file.writeAsBytesSync(bytes);
3434
FutureBuilder(
3535
future: {{ service.name | caseCamel }}.{{ method.name | caseCamel }}(
3636
{%~ for parameter in method.parameters.all %}
37-
{{ parameter.name | caseCamel | overrideIdentifier}}:{% if parameter.enumValues | length > 0%} {{parameter.enumName}}.{{ (parameter.enumKeys[0] ?? parameter.enumValues[0]) | caseEnumKey }}{% else %}{{ parameter | paramExample | replace({'<field-name>': (parameter.name | caseCamel) }) | raw }} {% endif %},{% if not parameter.required %} // optional{% endif %}
37+
{{ parameter.name | caseCamel | overrideIdentifier}}:{% if parameter.enumValues | length > 0%} {{ parameter.enumName | caseUcfirst | overrideIdentifier }}.{{ (parameter.enumKeys[0] ?? parameter.enumValues[0]) | caseEnumKey }}{% else %}{{ parameter | paramExample | replace({'<field-name>': (parameter.name | caseCamel) }) | raw }} {% endif %},{% if not parameter.required %} // optional{% endif %}
3838

3939
{%~ endfor %}
4040
), // Works for both public file and private file, for private files you need to be logged in
@@ -48,7 +48,7 @@ FutureBuilder(
4848
{% if method.method != 'delete' and method.type != 'webAuth' %}{% if method.type == 'location' %}Uint8List{% else %}{{ method.responseModel | caseUcfirst | overrideIdentifier }}{% endif %} result = {% endif %}await {{ service.name | caseCamel }}.{{ method.name | caseCamel }}({% if method.parameters.all | length == 0 %});{% endif %}
4949

5050
{%~ for parameter in method.parameters.all %}
51-
{{ parameter.name | caseCamel | overrideIdentifier}}: {% if parameter.enumValues | length > 0%}{{parameter.enumName}}.{{ (parameter.enumKeys[0] ?? parameter.enumValues[0]) | caseEnumKey }}{% else %}{{ parameter | paramExample | replace({'<field-name>': (parameter.name | caseCamel) }) | raw }}{% endif %},{% if not parameter.required %} // optional{% endif %}
51+
{{ parameter.name | caseCamel | overrideIdentifier}}: {% if parameter.enumValues | length > 0%}{{ parameter.enumName | caseUcfirst | overrideIdentifier }}.{{ (parameter.enumKeys[0] ?? parameter.enumValues[0]) | caseEnumKey }}{% else %}{{ parameter | paramExample | replace({'<field-name>': (parameter.name | caseCamel) }) | raw }}{% endif %},{% if not parameter.required %} // optional{% endif %}
5252

5353
{%~ endfor %}
5454
{% if method.parameters.all | length > 0 %});

templates/kotlin/docs/java/example.md.twig

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,10 @@ import {{ sdk.namespace | caseDot }}.models.InputFile;
66
import {{ sdk.namespace | caseDot }}.services.{{ service.name | caseUcfirst }};
77
{% set added = [] %}
88
{% for parameter in method.parameters.all %}
9-
{% if method == parameter.required %}
109
{% if parameter.enumValues is not empty %}
11-
{% if parameter.enumName is not empty %}
12-
{% set name = parameter.enumName %}
13-
{% else %}
14-
{% set name = parameter.name %}
15-
{% endif %}
16-
{% if name not in added %}
17-
import {{ sdk.namespace | caseDot }}.enums.{{ name | caseUcfirst }};
18-
{% set added = added|merge([name]) %}
19-
{% endif %}
10+
{% if parameter.enumName not in added %}
11+
import {{ sdk.namespace | caseDot }}.enums.{{ parameter.enumName | caseUcfirst }};
12+
{% set added = added|merge([parameter.enumName]) %}
2013
{% endif %}
2114
{% endif %}
2215
{% endfor %}
@@ -45,7 +38,7 @@ Client client = new Client()
4538
}));{% endif %}
4639

4740
{%~ for parameter in method.parameters.all %}
48-
{% if parameter.enumValues | length > 0%}{{ parameter.enumName }}.{{ (parameter.enumKeys[0] ?? parameter.enumValues[0]) | caseEnumKey }}{% else %}{{ parameter | paramExample }}{% endif %}, // {{ parameter.name }}{% if not parameter.required %} (optional){% endif %}
41+
{% if parameter.enumValues | length > 0%}{{ parameter.enumName | caseUcfirst }}.{{ (parameter.enumKeys[0] ?? parameter.enumValues[0]) | caseEnumKey }}{% else %}{{ parameter | paramExample }}{% endif %}, // {{ parameter.name }}{% if not parameter.required %} (optional){% endif %}
4942
{%~ if loop.last %}
5043

5144
new CoroutineCallback<>((result, error) -> {

templates/kotlin/docs/kotlin/example.md.twig

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,10 @@ import {{ sdk.namespace | caseDot }}.models.InputFile
66
import {{ sdk.namespace | caseDot }}.services.{{ service.name | caseUcfirst }}
77
{% set added = [] %}
88
{% for parameter in method.parameters.all %}
9-
{% if method == parameter.required %}
109
{% if parameter.enumValues is not empty %}
11-
{% if parameter.enumName is not empty %}
12-
{% set name = parameter.enumName %}
13-
{% else %}
14-
{% set name = parameter.name %}
15-
{% endif %}
16-
{% if name not in added %}
17-
import {{ sdk.namespace | caseDot }}.enums.{{ name | caseUcfirst }}
18-
{% set added = added|merge([name]) %}
19-
{% endif %}
10+
{% if parameter.enumName not in added %}
11+
import {{ sdk.namespace | caseDot }}.enums.{{ parameter.enumName | caseUcfirst }}
12+
{% set added = added|merge([parameter.enumName]) %}
2013
{% endif %}
2114
{% endif %}
2215
{% endfor %}
@@ -39,7 +32,7 @@ val {{ service.name | caseCamel }} = {{ service.name | caseUcfirst }}(client)
3932

4033
{% for parameter in method.parameters.all %}
4134
{% if parameter.required %}
42-
{{parameter.name}} = {% if parameter.enumValues | length > 0 %} {{ parameter.enumName }}.{{ (parameter.enumKeys[0] ?? parameter.enumValues[0]) | caseEnumKey }}{% else%}{{ parameter | paramExample }}{% endif %}{% if not loop.last %},{% endif %}
35+
{{parameter.name}} = {% if parameter.enumValues | length > 0 %} {{ parameter.enumName | caseUcfirst }}.{{ (parameter.enumKeys[0] ?? parameter.enumValues[0]) | caseEnumKey }}{% else%}{{ parameter | paramExample }}{% endif %}{% if not loop.last %},{% endif %}
4336

4437
{% else %}
4538
{{parameter.name}} = {{ parameter | paramExample }}{% if not loop.last %},{% endif %} // optional

templates/kotlin/src/main/kotlin/io/appwrite/models/Model.kt.twig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import com.google.gson.annotations.SerializedName
44
import io.appwrite.extensions.jsonCast
55
{%~ for property in definition.properties %}
66
{%~ if property.enum %}
7-
import {{ sdk.namespace | caseDot }}.enums.{{ (property.enumName ?? property.name) | caseUcfirst }}
7+
import {{ sdk.namespace | caseDot }}.enums.{{ property.enumName | caseUcfirst }}
88
{%~ endif %}
99
{%~ endfor %}
1010

0 commit comments

Comments
 (0)