-
Notifications
You must be signed in to change notification settings - Fork 177
/
Copy pathservice.dart.twig
34 lines (31 loc) · 2.09 KB
/
service.dart.twig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
part of {{ language.params.packageName }};
{% macro parameter(parameter) %}{% if parameter.required %}required {% endif %}{{ parameter | typeName }}{% if not parameter.required or parameter.nullable %}?{% endif %} {{ parameter.name | caseCamel | overrideIdentifier }}{% endmacro %}
{% macro method_parameters(parameters, consumes) %}
{% if parameters|length > 0 %}{{ '{' }}{% for parameter in parameters %}{{ _self.parameter(parameter) }}{% if not loop.last %}, {% endif %}{% endfor %}{% if 'multipart/form-data' in consumes %}, Function(UploadProgress)? onProgress{% endif %}{{ '}' }}{% endif %}
{% endmacro %}
{% macro service_params(parameters) %}
{% if parameters|length > 0 %}{{ ', {' }}{% for parameter in parameters %}{% if parameter.required %}required {% endif %}this.{{ parameter.name | caseCamel | overrideIdentifier }}{% if not loop.last %}, {% endif %}{% endfor %}{{ '}' }}{% endif %}
{% endmacro %}
{%if service.description %}
{{- service.description|dartComment | split(' ///') | join('///')}}
{% endif %}
class {{ service.name | caseUcfirst }} extends Service {
{{ service.name | caseUcfirst }}(super.client);
{% for method in service.methods %}
/// {{ method.title }}
///
{%~ if method.description %}
{{ method.description | dartComment }}
{% endif %}
{% if method.type == 'location' %}Future<Uint8List>{% else %}{% if method.responseModel and method.responseModel != 'any' %}Future<models.{{method.responseModel | caseUcfirst | overrideIdentifier}}>{% else %}Future{% endif %}{% endif %} {{ method.name | caseCamel }}({{ _self.method_parameters(method.parameters.all, method.consumes) }}) async {
final String apiPath = '{{ method.path }}'{% for parameter in method.parameters.path %}.replaceAll('{{ '{' }}{{ parameter.name | caseCamel }}{{ '}' }}', {{ parameter.name | caseCamel | overrideIdentifier }}){% endfor %};
{% if 'multipart/form-data' in method.consumes %}
{{ include('dart/base/requests/file.twig') }}
{% elseif method.type == 'location' %}
{{ include('dart/base/requests/location.twig') }}
{% else %}
{{ include('dart/base/requests/api.twig') }}
{% endif %}
}
{% endfor %}
}