[dart][dart-dio] Improve form param handling, respect required flag (#8369)

* [dart-dio] Improve form param handling, respect required flag

* simplify template
* respect required flag (only null check when not rquired)
* minor formatting

* Add additional nullable check
This commit is contained in:
Peter Leibiger
2021-01-22 10:58:27 +01:00
committed by GitHub
parent 2331432cc0
commit 90ed1290fa
5 changed files with 61 additions and 78 deletions

View File

@@ -52,26 +52,15 @@ class {{classname}} {
];{{/hasConsumes}}
{{#hasFormParams}}
final formData = <String, dynamic>{};
final formData = <String, dynamic>{
{{#formParams}}
{{^required}}{{^nullable}}if ({{paramName}} != null) {{/nullable}}{{/required}}r'{{baseName}}': {{#isFile}}MultipartFile.fromBytes({{paramName}}, filename: r'{{baseName}}'){{/isFile}}{{^isFile}}parameterToString(_serializers, {{paramName}}){{/isFile}},
{{/formParams}}
};
{{#isMultipart}}
{{#formParams}}
{{^isFile}}
if ({{paramName}} != null) {
formData[r'{{baseName}}'] = parameterToString(_serializers, {{paramName}});
}
{{/isFile}}
{{#isFile}}
if ({{paramName}} != null) {
formData[r'{{baseName}}'] = MultipartFile.fromBytes({{paramName}}, filename: r'{{baseName}}');
}
{{/isFile}}
{{/formParams}}
bodyData = FormData.fromMap(formData);
{{/isMultipart}}
{{^isMultipart}}
{{#formParams}}
formData['{{baseName}}'] = parameterToString(_serializers, {{paramName}});
{{/formParams}}
bodyData = formData;
{{/isMultipart}}
{{/hasFormParams}}
@@ -89,7 +78,7 @@ class {{classname}} {
{{/isContainer}}
{{^isContainer}}
{{#isPrimitiveType}}
var serializedBody = {{paramName}};
final serializedBody = {{paramName}};
{{/isPrimitiveType}}
{{^isPrimitiveType}}
final bodySerializer = _serializers.serializerForType({{{baseType}}}) as Serializer<{{{baseType}}}>;

View File

@@ -427,9 +427,10 @@ class PetApi {
'application/x-www-form-urlencoded',
];
final formData = <String, dynamic>{};
formData['name'] = parameterToString(_serializers, name);
formData['status'] = parameterToString(_serializers, status);
final formData = <String, dynamic>{
if (name != null) r'name': parameterToString(_serializers, name),
if (status != null) r'status': parameterToString(_serializers, status),
};
bodyData = formData;
return _dio.request<dynamic>(
@@ -486,13 +487,10 @@ class PetApi {
'multipart/form-data',
];
final formData = <String, dynamic>{};
if (additionalMetadata != null) {
formData[r'additionalMetadata'] = parameterToString(_serializers, additionalMetadata);
}
if (file != null) {
formData[r'file'] = MultipartFile.fromBytes(file, filename: r'file');
}
final formData = <String, dynamic>{
if (additionalMetadata != null) r'additionalMetadata': parameterToString(_serializers, additionalMetadata),
if (file != null) r'file': MultipartFile.fromBytes(file, filename: r'file'),
};
bodyData = FormData.fromMap(formData);
return _dio.request<dynamic>(

View File

@@ -459,9 +459,10 @@ class PetApi {
'application/x-www-form-urlencoded',
];
final formData = <String, dynamic>{};
formData['name'] = parameterToString(_serializers, name);
formData['status'] = parameterToString(_serializers, status);
final formData = <String, dynamic>{
if (name != null) r'name': parameterToString(_serializers, name),
if (status != null) r'status': parameterToString(_serializers, status),
};
bodyData = formData;
return _dio.request<dynamic>(
@@ -518,13 +519,10 @@ class PetApi {
'multipart/form-data',
];
final formData = <String, dynamic>{};
if (additionalMetadata != null) {
formData[r'additionalMetadata'] = parameterToString(_serializers, additionalMetadata);
}
if (file != null) {
formData[r'file'] = MultipartFile.fromBytes(file, filename: r'file');
}
final formData = <String, dynamic>{
if (additionalMetadata != null) r'additionalMetadata': parameterToString(_serializers, additionalMetadata),
if (file != null) r'file': MultipartFile.fromBytes(file, filename: r'file'),
};
bodyData = FormData.fromMap(formData);
return _dio.request<dynamic>(

View File

@@ -175,7 +175,7 @@ class FakeApi {
'application/json',
];
var serializedBody = body;
final serializedBody = body;
final jsonbody = json.encode(serializedBody);
bodyData = jsonbody;
@@ -306,7 +306,7 @@ class FakeApi {
'application/json',
];
var serializedBody = body;
final serializedBody = body;
final jsonbody = json.encode(serializedBody);
bodyData = jsonbody;
@@ -369,7 +369,7 @@ class FakeApi {
'application/json',
];
var serializedBody = body;
final serializedBody = body;
final jsonbody = json.encode(serializedBody);
bodyData = jsonbody;
@@ -619,21 +619,22 @@ class FakeApi {
'application/x-www-form-urlencoded',
];
final formData = <String, dynamic>{};
formData['integer'] = parameterToString(_serializers, integer);
formData['int32'] = parameterToString(_serializers, int32);
formData['int64'] = parameterToString(_serializers, int64);
formData['number'] = parameterToString(_serializers, number);
formData['float'] = parameterToString(_serializers, float);
formData['double'] = parameterToString(_serializers, double_);
formData['string'] = parameterToString(_serializers, string);
formData['pattern_without_delimiter'] = parameterToString(_serializers, patternWithoutDelimiter);
formData['byte'] = parameterToString(_serializers, byte);
formData['binary'] = parameterToString(_serializers, binary);
formData['date'] = parameterToString(_serializers, date);
formData['dateTime'] = parameterToString(_serializers, dateTime);
formData['password'] = parameterToString(_serializers, password);
formData['callback'] = parameterToString(_serializers, callback);
final formData = <String, dynamic>{
if (integer != null) r'integer': parameterToString(_serializers, integer),
if (int32 != null) r'int32': parameterToString(_serializers, int32),
if (int64 != null) r'int64': parameterToString(_serializers, int64),
r'number': parameterToString(_serializers, number),
if (float != null) r'float': parameterToString(_serializers, float),
r'double': parameterToString(_serializers, double_),
if (string != null) r'string': parameterToString(_serializers, string),
r'pattern_without_delimiter': parameterToString(_serializers, patternWithoutDelimiter),
r'byte': parameterToString(_serializers, byte),
if (binary != null) r'binary': MultipartFile.fromBytes(binary, filename: r'binary'),
if (date != null) r'date': parameterToString(_serializers, date),
if (dateTime != null) r'dateTime': parameterToString(_serializers, dateTime),
if (password != null) r'password': parameterToString(_serializers, password),
if (callback != null) r'callback': parameterToString(_serializers, callback),
};
bodyData = formData;
return _dio.request<dynamic>(
@@ -701,9 +702,10 @@ class FakeApi {
'application/x-www-form-urlencoded',
];
final formData = <String, dynamic>{};
formData['enum_form_string_array'] = parameterToString(_serializers, enumFormStringArray);
formData['enum_form_string'] = parameterToString(_serializers, enumFormString);
final formData = <String, dynamic>{
if (enumFormStringArray != null) r'enum_form_string_array': parameterToString(_serializers, enumFormStringArray),
if (enumFormString != null) r'enum_form_string': parameterToString(_serializers, enumFormString),
};
bodyData = formData;
return _dio.request<dynamic>(
@@ -867,9 +869,10 @@ class FakeApi {
'application/x-www-form-urlencoded',
];
final formData = <String, dynamic>{};
formData['param'] = parameterToString(_serializers, param);
formData['param2'] = parameterToString(_serializers, param2);
final formData = <String, dynamic>{
r'param': parameterToString(_serializers, param),
r'param2': parameterToString(_serializers, param2),
};
bodyData = formData;
return _dio.request<dynamic>(

View File

@@ -427,9 +427,10 @@ class PetApi {
'application/x-www-form-urlencoded',
];
final formData = <String, dynamic>{};
formData['name'] = parameterToString(_serializers, name);
formData['status'] = parameterToString(_serializers, status);
final formData = <String, dynamic>{
if (name != null) r'name': parameterToString(_serializers, name),
if (status != null) r'status': parameterToString(_serializers, status),
};
bodyData = formData;
return _dio.request<dynamic>(
@@ -486,13 +487,10 @@ class PetApi {
'multipart/form-data',
];
final formData = <String, dynamic>{};
if (additionalMetadata != null) {
formData[r'additionalMetadata'] = parameterToString(_serializers, additionalMetadata);
}
if (file != null) {
formData[r'file'] = MultipartFile.fromBytes(file, filename: r'file');
}
final formData = <String, dynamic>{
if (additionalMetadata != null) r'additionalMetadata': parameterToString(_serializers, additionalMetadata),
if (file != null) r'file': MultipartFile.fromBytes(file, filename: r'file'),
};
bodyData = FormData.fromMap(formData);
return _dio.request<dynamic>(
@@ -565,13 +563,10 @@ class PetApi {
'multipart/form-data',
];
final formData = <String, dynamic>{};
if (additionalMetadata != null) {
formData[r'additionalMetadata'] = parameterToString(_serializers, additionalMetadata);
}
if (requiredFile != null) {
formData[r'requiredFile'] = MultipartFile.fromBytes(requiredFile, filename: r'requiredFile');
}
final formData = <String, dynamic>{
if (additionalMetadata != null) r'additionalMetadata': parameterToString(_serializers, additionalMetadata),
r'requiredFile': MultipartFile.fromBytes(requiredFile, filename: r'requiredFile'),
};
bodyData = FormData.fromMap(formData);
return _dio.request<dynamic>(