Skip to content

Commit b889b33

Browse files
committed
fix: fix parsing non standard content-type, fix bug when unzip can't unzip bricks folder
1 parent 6b886dc commit b889b33

File tree

3 files changed

+31
-11
lines changed

3 files changed

+31
-11
lines changed

lib/data/repository/source_repository_impl.dart

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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(

lib/presentation/screen/generation_screen/bloc/generation_screen_bloc.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ class GenerationScreenBloc extends BaseBloc<GenerationScreenEvent,
100100
workingDirectory: state.config.projectPath);
101101

102102
gitGetBrickProcess.stdin.writeln(
103-
'curl -L https://github.com/Onix-Systems/onix-flutter-project-generator/archive/refs/heads/main.zip --output brick.zip && unzip -qq -f brick.zip "onix-flutter-project-generator-main/bricks/*" -d bricks && rm brick.zip');
103+
'curl -L https://github.com/Onix-Systems/onix-flutter-project-generator/archive/refs/heads/main.zip --output brick.zip && unzip -qq brick.zip -d bricks && rm brick.zip');
104104

105105
gitGetBrickProcess.stdin.writeln('echo "Complete with exit code: 0"');
106106
await gitGetBrickProcess.exitCode;

macos/Podfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,4 @@ SPEC CHECKSUMS:
7676

7777
PODFILE CHECKSUM: 33dc0a74a37eaaaa9a4d991374cc1fb2ce00b9ca
7878

79-
COCOAPODS: 1.12.1
79+
COCOAPODS: 1.13.0

0 commit comments

Comments
 (0)