@@ -283,12 +283,33 @@ class SourceRepositoryImpl implements SourceRepository {
283283 }
284284
285285 for (final response in responses) {
286- final schema = response.value.containsKey ('content' )
287- ? response.value['content' ]['schema' ] ??
288- response.value['content' ].containsKey ('application/json' )
289- ? response.value['content' ]['application/json' ]['schema' ]
290- : response.value['content' ]['*/*' ]['schema' ]
291- : response.value['schema' ];
286+ Map <String , dynamic >? schema;
287+
288+ if (response.value.containsKey ('content' )) {
289+ final content = response.value['content' ];
290+ if (content.containsKey ('schema' )) {
291+ schema = content['schema' ];
292+ } else {
293+ if (content.keys
294+ .any ((e) => e.toString ().contains ('application/json' ))) {
295+ schema = content[content.keys.firstWhere (
296+ (e) => e.toString ().contains ('application/json' ))]['schema' ];
297+ } else if (content.keys.any ((e) => e.toString ().contains ('json' ))) {
298+ schema = content[content.keys
299+ .firstWhere ((e) => e.toString ().contains ('json' ))]['schema' ];
300+ } else if (content.keys.any ((e) => e.toString ().contains ('*/*' ))) {
301+ schema = content[content.keys
302+ .firstWhere ((e) => e.toString ().contains ('*/*' ))]['schema' ];
303+ } else if (content.keys
304+ .any ((e) => e.toString ().contains ('text/plain' ))) {
305+ schema = content[content.keys
306+ .firstWhere ((e) => e.toString ().contains ('text/plain' ))]
307+ ['schema' ];
308+ }
309+ }
310+ } else {
311+ schema = response.value['schema' ];
312+ }
292313
293314 if (schema == null ) {
294315 return ;
@@ -310,9 +331,8 @@ class SourceRepositoryImpl implements SourceRepository {
310331 'List<${TypeMatcher .getDartType (schema ['items' ]['type' ])}>' );
311332 }
312333 } else {
313- if (schema is Map &&
314- (schema.containsKey ('additionalProperties' ) ||
315- schema.containsKey ('properties' ))) {
334+ if (schema.containsKey ('additionalProperties' ) ||
335+ schema.containsKey ('properties' )) {
316336 method.setResponseRuntimeType ('Map<String, dynamic>' );
317337 } else {
318338 method.setResponseRuntimeType (
0 commit comments