Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions templates/dart/base/utils.twig
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
{% macro map_parameter(parameters) %}
{% for parameter in parameters %}
{% if not parameter.nullable and not parameter.required %}
if ({{ parameter.name | caseCamel | overrideIdentifier }} != null) '{{ parameter.name }}': {{ parameter.name | caseCamel | overrideIdentifier }}{% if parameter.enumValues | length > 0 %}!.value{% endif %},
{% else %}
'{{ parameter.name }}': {{ parameter.name | caseCamel | overrideIdentifier }}{% if parameter.enumValues | length > 0 %}{% if not parameter.required %}?{% endif %}.value{% endif %},
{% endif %}
{% endfor %}
{% endmacro %}

Expand Down
32 changes: 19 additions & 13 deletions templates/dart/lib/src/client_mixin.dart.twig
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,25 @@ mixin ClientMixin {
required Map<String, String> headers,
required Map<String, dynamic> params,
}) {
if (params.isNotEmpty) {
params.removeWhere((key, value) => value == null);
}

http.BaseRequest request = http.Request(method.name(), uri);
if (headers['content-type'] == 'multipart/form-data') {
request = http.MultipartRequest(method.name(), uri);
if (params.isNotEmpty) {
params.forEach((key, value) {
if (value == null) {
return;
}
if (value is http.MultipartFile) {
(request as http.MultipartRequest).files.add(value);
} else {
if (value is List) {
value.asMap().forEach((i, v) {
(request as http.MultipartRequest)
.fields
.addAll({"$key[$i]": v.toString()});
if (v != null) {
(request as http.MultipartRequest)
.fields
.addAll({"$key[$i]": v.toString()});
}
});
} else {
(request as http.MultipartRequest)
Expand All @@ -40,15 +42,19 @@ mixin ClientMixin {
}
} else if (method == HttpMethod.get) {
if (params.isNotEmpty) {
params = params.map((key, value){
if (value is int || value is double) {
return MapEntry(key, value.toString());
}
if (value is List) {
return MapEntry("$key[]", value);
Map<String, dynamic> filteredParams = {};
params.forEach((key, value) {
if (value != null) {
if (value is int || value is double) {
filteredParams[key] = value.toString();
} else if (value is List) {
filteredParams["$key[]"] = value;
} else {
filteredParams[key] = value;
}
}
return MapEntry(key, value);
});
params = filteredParams;
}
uri = Uri(
fragment: uri.fragment,
Expand Down
4 changes: 4 additions & 0 deletions templates/flutter/base/utils.twig
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
{%- macro map_parameter(parameters) -%}
{%- for parameter in parameters ~%}
{% if not parameter.nullable and not parameter.required %}
if ({{ parameter.name | caseCamel | overrideIdentifier }} != null) '{{ parameter.name }}': {{ parameter.name | caseCamel | overrideIdentifier }}{% if parameter.enumValues | length > 0 %}!.value{% endif %},
{% else %}
'{{ parameter.name }}': {{ parameter.name | caseCamel | overrideIdentifier }}{% if parameter.enumValues | length > 0 %}{% if not parameter.required %}?{% endif %}.value{% endif %},
{% endif %}
{%- endfor ~%}
{%- endmacro ~%}

Expand Down
32 changes: 19 additions & 13 deletions templates/flutter/lib/src/client_mixin.dart.twig
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,25 @@ mixin ClientMixin {
required Map<String, String> headers,
required Map<String, dynamic> params,
}) {
if (params.isNotEmpty) {
params.removeWhere((key, value) => value == null);
}

http.BaseRequest request = http.Request(method.name(), uri);
if (headers['content-type'] == 'multipart/form-data') {
request = http.MultipartRequest(method.name(), uri);
if (params.isNotEmpty) {
params.forEach((key, value) {
if (value == null) {
return;
}
if (value is http.MultipartFile) {
(request as http.MultipartRequest).files.add(value);
} else {
if (value is List) {
value.asMap().forEach((i, v) {
(request as http.MultipartRequest).fields.addAll({
"$key[$i]": v.toString(),
});
if (v != null) {
(request as http.MultipartRequest).fields.addAll({
"$key[$i]": v.toString(),
});
}
});
} else {
(request as http.MultipartRequest).fields.addAll({
Expand All @@ -40,15 +42,19 @@ mixin ClientMixin {
}
} else if (method == HttpMethod.get) {
if (params.isNotEmpty) {
params = params.map((key, value){
if (value is int || value is double) {
return MapEntry(key, value.toString());
}
if (value is List) {
return MapEntry("$key[]", value);
Map<String, dynamic> filteredParams = {};
params.forEach((key, value) {
if (value != null) {
if (value is int || value is double) {
filteredParams[key] = value.toString();
} else if (value is List) {
filteredParams["$key[]"] = value;
} else {
filteredParams[key] = value;
}
}
return MapEntry(key, value);
});
params = filteredParams;
}
uri = Uri(
fragment: uri.fragment,
Expand Down
Loading