11part of {{ language .params .packageName }};
22
3- {% macro parameter(parameter ) %}{% if parameter .required %}required {{ parameter .type | typeName }}{% else %}{{ parameter .type | typeName }}?{% endif %} {{ parameter .name | caseCamel | escapeKeyword }}{% endmacro %}
4- {% macro method_parameters(parameters , consumes ) %}
5- {% if parameters .all | length > 0 %}{{ ' {' }}{% for parameter in parameters .all %}{{ _self.parameter (parameter ) }}{% if not loop .last %}, {% endif %}{% endfor %}{% if ' multipart/form-data' in consumes %}, Function(UploadProgress)? onProgress{% endif %}{{ ' }' }}{% endif %}
6- {% endmacro %}
7- {% macro map_parameter(parameter ) %}'{{ parameter .name }}': {{ parameter .name | caseCamel | escapeKeyword }},{% endmacro %}
3+ {% import " flutter/base/macros.twig" as macros %}
84
95{%if service .description %}
106{{ service .description | dartComment}}
@@ -19,95 +15,17 @@ class {{ service.name | caseUcfirst }} extends Service {
1915{{ method .description | dartComment }}
2016 ///
2117{% endif %}
22- {% if method .type == ' webAuth' %}Future{% elseif method .type == ' location' %} Future<Uint8List > {% else %} {% if method .responseModel and method .responseModel != ' any' %}Future<models .{{method .responseModel | caseUcfirst }}>{% else %}Future{% endif %}{% endif %} {{ method .name | caseCamel }}({{ _self .method_parameters (method .parameters , method .consumes ) }}) async {
18+ {% if method .type == ' webAuth' %}Future{% elseif method .type == ' location' %} Future<Uint8List > {% else %} {% if method .responseModel and method .responseModel != ' any' %}Future<models .{{method .responseModel | caseUcfirst }}>{% else %}Future{% endif %}{% endif %} {{ method .name | caseCamel }}({{ macros .method_parameters (method .parameters , method .consumes ) }}) async {
2319 {% if method .parameters .path | length > 0 %}final{% else %}const{% endif %} String path = '{{ method .path }}'{% for parameter in method .parameters .path %}.replaceAll('{{ ' {' }}{{ parameter .name | caseCamel }}{{ ' }' }}', {{ parameter .name | caseCamel | escapeKeyword }}){% endfor %};
2420
25- final Map<String , dynamic > params = {
26- {% for parameter in method .parameters .query %}
27- {{ _self.map_parameter (parameter ) }}
28- {% endfor %}
29- {% for parameter in method .parameters .body %}
30- {{ _self.map_parameter (parameter ) }}
31- {% endfor %}
32- {% if method .type == ' webAuth' or method .type == ' location' %}
33- {% if method .security | length > 0 %}
34- {% for node in method .security %}
35- {% for key ,header in node | keys %}
36- '{{header | caseLower}}': client.config['{{header | caseLower}}'],
37- {% endfor %}
38- {% endfor %}
39- {% endif %}
40- {% endif %}
41- };
42-
43- {% if method .type == ' webAuth' %}
44-
45- final List query = [];
46-
47- params.forEach((key, value) {
48- if (value is List) {
49- for (var item in value) {
50- query.add(Uri.encodeComponent(key + '[]') + '=' + Uri.encodeComponent(item));
51- }
52- } else if(value != null) {
53- query.add(Uri.encodeComponent(key) + '=' + Uri.encodeComponent(value));
54- }
55- });
56-
57- Uri endpoint = Uri.parse(client.endPoint);
58- Uri url = Uri(scheme: endpoint.scheme,
59- host: endpoint.host,
60- port: endpoint.port,
61- path: endpoint.path + path,
62- query: query.join('& ')
63- );
64-
65- return client.webAuth(url);
66-
67- {% elseif method .type == ' location' %}
68- final res = await client.call(HttpMethod.{{ method .method | caseLower }}, path: path, params: params, responseType: ResponseType.bytes);
69- return res.data;
70- {% else %}
71- final Map<String , String > headers = {
72- {% for key , header in method .headers %}
73- '{{ key }}': '{{ header }}',
74- {% endfor %}
75- };
76-
7721{% if ' multipart/form-data' in method .consumes %}
78- dynamic res;
79- if(kIsWeb) {
80- {% for parameter in method .parameters .all %}
81- {% if parameter .type == ' file' %}
82- params['{{ parameter .name }}'] = {{ parameter .name }}.file;
83- {% endif %}
84- {% endfor %}
85- res = await client.call(HttpMethod.{{ method .method | caseLower }}, path: path, params: params, headers: headers);
86- } else {
87- String idParamName = '';
88- {% for parameter in method .parameters .all %}
89- {% if parameter .type == ' file' %}
90- final paramName = '{{ parameter .name }}';
91- {% endif %}
92- {% if parameter .isUploadID %}
93- idParamName = '{{ parameter .name }}';
94- {% endif %}
95- {% endfor %}
96- res = await chunkedUpload(
97- client: client,
98- path: path,
99- params: params,
100- paramName: paramName,
101- idParamName: idParamName,
102- headers: headers,
103- onProgress: onProgress,
104- );
105- }
22+ {{ include (' flutter/base/file.twig' ) }}
23+ {% elseif method .type == ' webAuth' %}
24+ {{ include (' flutter/base/oauth.twig' ) }}
10625{% else %}
107- final res = await client.call(HttpMethod.{{ method .method | caseLower }}, path: path, params: params, headers: headers);
108- {% endif %}
109- return {% if method .responseModel and method .responseModel != ' any' %}models.{{method .responseModel | caseUcfirst }}.fromMap(res.data){% else %} res.data{% endif %};
26+ {{ include (' flutter/base/api.twig' ) }}
11027{% endif %}
28+
11129 }
11230{% endfor %}
11331}
0 commit comments