Browse Source

dynamite: Handle more response mime types and in a better way

pull/204/head
jld3103 2 years ago
parent
commit
41b1bef6b0
No known key found for this signature in database
GPG Key ID: 9062417B9E8EB7B3
  1. 34
      packages/dynamite/lib/src/openapi_builder.dart

34
packages/dynamite/lib/src/openapi_builder.dart

@ -810,25 +810,21 @@ class OpenAPIBuilder implements Builder {
),
mediaType.schema!,
);
switch (mimeType) {
case 'application/json':
dataType = result.name;
if (result.name == 'dynamic') {
dataValue = '';
} else {
dataValue = result.deserialize(result.decode('utf8.decode(response.body)'));
}
break;
case 'image/png':
dataType = 'Uint8List';
dataValue = 'response.body';
break;
case 'text/plain':
dataType = 'String';
dataValue = 'utf8.decode(response.body)';
break;
default:
throw Exception('Can not parse mime type "$mimeType"');
if (mimeType == '*/*' || mimeType.startsWith('image/')) {
dataType = 'Uint8List';
dataValue = 'response.body';
} else if (mimeType.startsWith('text/')) {
dataType = 'String';
dataValue = 'utf8.decode(response.body)';
} else if (mimeType == 'application/json') {
dataType = result.name;
if (result.name == 'dynamic') {
dataValue = '';
} else {
dataValue = result.deserialize(result.decode('utf8.decode(response.body)'));
}
} else {
throw Exception('Can not parse mime type "$mimeType"');
}
}
}

Loading…
Cancel
Save