Skip to content

Commit f7af624

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

File tree

2 files changed

+16
-0
lines changed
  • 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

2 files changed

+16
-0
lines changed

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

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

911
final _regList = RegExp(r'^List<(.*)>$');
1012
final _regSet = RegExp(r'^Set<(.*)>$');
1113
final _regMap = RegExp(r'^Map<String,(.*)>$');
1214

1315
ReturnType deserialize<ReturnType, BaseType>(dynamic value, String targetType, {bool growable= true}) {
1416
switch (targetType) {
17+
case 'MultipartFile':
18+
try {
19+
return MultipartFile.fromBytes(List.castFrom<dynamic, int>(value)) as ReturnType;
20+
} catch (e) {
21+
throw Exception('Cannot deserialize');
22+
}
1523
case 'String':
1624
return '$value' as ReturnType;
1725
case 'int':

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,21 @@ 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 'dart:typed_data';
46+
import 'package:dio/dio.dart';
4547

4648
final _regList = RegExp(r'^List<(.*)>$');
4749
final _regSet = RegExp(r'^Set<(.*)>$');
4850
final _regMap = RegExp(r'^Map<String,(.*)>$');
4951

5052
ReturnType deserialize<ReturnType, BaseType>(dynamic value, String targetType, {bool growable= true}) {
5153
switch (targetType) {
54+
case 'MultipartFile':
55+
try {
56+
return MultipartFile.fromBytes(List.castFrom<dynamic, int>(value)) as ReturnType;
57+
} catch (e) {
58+
throw Exception('Cannot deserialize');
59+
}
5260
case 'String':
5361
return '$value' as ReturnType;
5462
case 'int':

0 commit comments

Comments
 (0)