Skip to content

Commit 641c1e3

Browse files
committed
bugfix/dart-dio/multipart-file-handling
1 parent 96adf2f commit 641c1e3

2 files changed

Lines changed: 14 additions & 0 deletions

File tree

  • modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable
  • samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src

modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/deserialize.mustache

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,20 @@ import 'package:{{pubName}}/{{sourceFolder}}/{{modelPackage}}/{{classFilename}}.
55
{{/isEnum}}
66
{{/model}}
77
{{/models}}
8+
import 'package:dio/dio.dart';
89

910
final _regList = RegExp(r'^List<(.*)>$');
1011
final _regSet = RegExp(r'^Set<(.*)>$');
1112
final _regMap = RegExp(r'^Map<String,(.*)>$');
1213

1314
ReturnType deserialize<ReturnType, BaseType>(dynamic value, String targetType, {bool growable= true}) {
1415
switch (targetType) {
16+
case 'MultipartFile':
17+
try {
18+
return MultipartFile.fromBytes(List.castFrom<dynamic, int>(value)) as ReturnType;
19+
} catch (e) {
20+
throw Exception('Cannot deserialize');
21+
}
1522
case 'String':
1623
return '$value' as ReturnType;
1724
case 'int':

samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/deserialize.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,20 @@ import 'package:openapi/src/model/special_model_name.dart';
4242
import 'package:openapi/src/model/tag.dart';
4343
import 'package:openapi/src/model/test_inline_freeform_additional_properties_request.dart';
4444
import 'package:openapi/src/model/user.dart';
45+
import 'package:dio/dio.dart';
4546

4647
final _regList = RegExp(r'^List<(.*)>$');
4748
final _regSet = RegExp(r'^Set<(.*)>$');
4849
final _regMap = RegExp(r'^Map<String,(.*)>$');
4950

5051
ReturnType deserialize<ReturnType, BaseType>(dynamic value, String targetType, {bool growable= true}) {
5152
switch (targetType) {
53+
case 'MultipartFile':
54+
try {
55+
return MultipartFile.fromBytes(List.castFrom<dynamic, int>(value)) as ReturnType;
56+
} catch (e) {
57+
throw Exception('Cannot deserialize');
58+
}
5259
case 'String':
5360
return '$value' as ReturnType;
5461
case 'int':

0 commit comments

Comments
 (0)