[dart-dio] Fix serialization of map body params (#8367)

This commit is contained in:
Peter Leibiger
2021-01-07 15:30:16 +01:00
committed by GitHub
parent 02473d8175
commit 2ba0e03629
2 changed files with 10 additions and 4 deletions

View File

@@ -77,11 +77,17 @@ class {{classname}} {
{{/hasFormParams}}
{{#bodyParam}}
{{#isContainer}}
{{#isArray}}
const type = FullType(BuiltList, [FullType({{baseType}})]);
final serializedBody = _serializers.serialize({{paramName}}, specifiedType: type);
{{/isArray}}
{{^isArray}}
{{#isMap}}
const type = FullType(BuiltMap, [FullType(String), FullType({{baseType}})]);
final serializedBody = _serializers.serialize({{paramName}}, specifiedType: type);
{{/isMap}}
{{/isContainer}}
{{^isContainer}}
{{#isPrimitiveType}}
var serializedBody = {{paramName}};
{{/isPrimitiveType}}
@@ -89,7 +95,7 @@ class {{classname}} {
final bodySerializer = _serializers.serializerForType({{{baseType}}}) as Serializer<{{{baseType}}}>;
final serializedBody = _serializers.serializeWith(bodySerializer, {{paramName}});
{{/isPrimitiveType}}
{{/isArray}}
{{/isContainer}}
final json{{paramName}} = json.encode(serializedBody);
bodyData = json{{paramName}};
{{/bodyParam}}

View File

@@ -814,8 +814,8 @@ class FakeApi {
'application/json',
];
final bodySerializer = _serializers.serializerForType(String) as Serializer<String>;
final serializedBody = _serializers.serializeWith(bodySerializer, requestBody);
const type = FullType(BuiltMap, [FullType(String), FullType(String)]);
final serializedBody = _serializers.serialize(requestBody, specifiedType: type);
final jsonrequestBody = json.encode(serializedBody);
bodyData = jsonrequestBody;