Skip to content

Commit b109bf7

Browse files
committed
Update Flutter SDK storage service to include methods to get URLs
1 parent 556d759 commit b109bf7

File tree

3 files changed

+22
-8
lines changed

3 files changed

+22
-8
lines changed
+13-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{% import 'flutter/base/utils.twig' as utils %}
22
final Map<String, dynamic> params = {
3-
{{ utils.map_parameter(method.parameters.query) }}
3+
{{- utils.map_parameter(method.parameters.query) -}}
44
{{ utils.map_parameter(method.parameters.body) }}
55
{% if method.security|length > 0 %}{% for node in method.security %}
66
{% for key,header in node|keys %}
@@ -9,6 +9,17 @@
99
{% endfor %}
1010
{% endif %}
1111
};
12+
final uri = Uri.parse(client.endpoint + path).replace(queryParameters: params);
1213

13-
final res = await client.call(HttpMethod.{{ method.method | caseLower }}, path: path, params: params, responseType: ResponseType.bytes);
14+
return uri;
15+
}
16+
17+
Future<Uint8List> {{ method.name | caseCamel }}Bytes ({{ utils.method_parameters(method.parameters.all | filter((param) => not param.isGlobal), method.consumes) }}) async {
18+
final uri = {{ method.name | caseCamel }}(
19+
{%- for parameter in method.parameters.all | filter((param) => not param.isGlobal) ~%}
20+
{{ parameter.name | caseCamel | overrideIdentifier }}: {{ parameter.name | caseCamel | overrideIdentifier }},
21+
{%- endfor ~%}
22+
);
23+
24+
final res = await client.call(HttpMethod.{{ method.method | caseLower }}, path: uri.path[1:], params: uri.queryParameters, responseType: ResponseType.bytes);
1425
return res.data;

templates/flutter/base/utils.twig

+7-1
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,10 @@
88
{%- for key, header in headers %}
99
'{{ key }}': '{{ header }}',
1010
{%- endfor -%}
11-
{%- endmacro -%}
11+
{%- endmacro -%}
12+
13+
{% macro parameter(parameter) %}{% if parameter.required %}required {{ parameter.type | typeName }}{% else %}{{ parameter.type | typeName }}?{% endif %} {{ parameter.name | caseCamel | overrideIdentifier }}{% endmacro %}
14+
15+
{% macro method_parameters(parameters, consumes) %}
16+
{% 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 %}
17+
{% endmacro %}

templates/flutter/lib/services/service.dart.twig

+2-5
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
part of {{ language.params.packageName }};
2-
{% macro parameter(parameter) %}{% if parameter.required %}required {{ parameter.type | typeName }}{% else %}{{ parameter.type | typeName }}?{% endif %} {{ parameter.name | caseCamel | overrideIdentifier }}{% endmacro %}
3-
{% macro method_parameters(parameters, consumes) %}
4-
{% 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 %}
5-
{% endmacro %}
2+
{% import 'flutter/base/utils.twig' as utils %}
63
{% macro service_params(parameters) %}
74
{% 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 %}
85
{% endmacro %}
@@ -25,7 +22,7 @@ class {{ service.name | caseUcfirst }} extends Service {
2522
{{ method.description|dartComment }}
2623
///
2724
{% endif %}
28-
{% if method.type == 'webAuth' %}Future{% elseif 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 | filter((param) => not param.isGlobal), method.consumes) }}) async {
25+
{% if method.type == 'webAuth' %}Future{% elseif method.type == 'location' %}Uri{% else %}{% if method.responseModel and method.responseModel != 'any' %}Future<models.{{method.responseModel | caseUcfirst | overrideIdentifier}}>{% else %}Future{% endif %}{% endif %} {{ method.name | caseCamel }}({{ utils.method_parameters(method.parameters.all | filter((param) => not param.isGlobal), method.consumes) }}){% if method.type != 'location' %} async{% endif %} {
2926
{% 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 | overrideIdentifier }}){% endfor %};
3027

3128
{% if 'multipart/form-data' in method.consumes %}

0 commit comments

Comments
 (0)