Skip to content

Commit 3c12f46

Browse files
committed
filter null values in multi part and get requests
1 parent ecfc5fb commit 3c12f46

File tree

2 files changed

+38
-20
lines changed

2 files changed

+38
-20
lines changed

templates/dart/lib/src/client_mixin.dart.twig

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,19 @@ mixin ClientMixin {
1818
request = http.MultipartRequest(method.name(), uri);
1919
if (params.isNotEmpty) {
2020
params.forEach((key, value) {
21+
if (value == null) {
22+
return;
23+
}
2124
if (value is http.MultipartFile) {
2225
(request as http.MultipartRequest).files.add(value);
2326
} else {
2427
if (value is List) {
2528
value.asMap().forEach((i, v) {
26-
(request as http.MultipartRequest)
27-
.fields
28-
.addAll({"$key[$i]": v.toString()});
29+
if (v != null) {
30+
(request as http.MultipartRequest)
31+
.fields
32+
.addAll({"$key[$i]": v.toString()});
33+
}
2934
});
3035
} else {
3136
(request as http.MultipartRequest)
@@ -37,15 +42,19 @@ mixin ClientMixin {
3742
}
3843
} else if (method == HttpMethod.get) {
3944
if (params.isNotEmpty) {
40-
params = params.map((key, value){
41-
if (value is int || value is double) {
42-
return MapEntry(key, value.toString());
43-
}
44-
if (value is List) {
45-
return MapEntry("$key[]", value);
45+
Map<String, dynamic> filteredParams = {};
46+
params.forEach((key, value) {
47+
if (value != null) {
48+
if (value is int || value is double) {
49+
filteredParams[key] = value.toString();
50+
} else if (value is List) {
51+
filteredParams["$key[]"] = value;
52+
} else {
53+
filteredParams[key] = value;
54+
}
4655
}
47-
return MapEntry(key, value);
4856
});
57+
params = filteredParams;
4958
}
5059
uri = Uri(
5160
fragment: uri.fragment,

templates/flutter/lib/src/client_mixin.dart.twig

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,19 @@ mixin ClientMixin {
1818
request = http.MultipartRequest(method.name(), uri);
1919
if (params.isNotEmpty) {
2020
params.forEach((key, value) {
21+
if (value == null) {
22+
return;
23+
}
2124
if (value is http.MultipartFile) {
2225
(request as http.MultipartRequest).files.add(value);
2326
} else {
2427
if (value is List) {
2528
value.asMap().forEach((i, v) {
26-
(request as http.MultipartRequest).fields.addAll({
27-
"$key[$i]": v.toString(),
28-
});
29+
if (v != null) {
30+
(request as http.MultipartRequest).fields.addAll({
31+
"$key[$i]": v.toString(),
32+
});
33+
}
2934
});
3035
} else {
3136
(request as http.MultipartRequest).fields.addAll({
@@ -37,15 +42,19 @@ mixin ClientMixin {
3742
}
3843
} else if (method == HttpMethod.get) {
3944
if (params.isNotEmpty) {
40-
params = params.map((key, value){
41-
if (value is int || value is double) {
42-
return MapEntry(key, value.toString());
43-
}
44-
if (value is List) {
45-
return MapEntry("$key[]", value);
45+
Map<String, dynamic> filteredParams = {};
46+
params.forEach((key, value) {
47+
if (value != null) {
48+
if (value is int || value is double) {
49+
filteredParams[key] = value.toString();
50+
} else if (value is List) {
51+
filteredParams["$key[]"] = value;
52+
} else {
53+
filteredParams[key] = value;
54+
}
4655
}
47-
return MapEntry(key, value);
4856
});
57+
params = filteredParams;
4958
}
5059
uri = Uri(
5160
fragment: uri.fragment,

0 commit comments

Comments
 (0)