Browse Source

dynamite: Fix allOf's

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

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

@ -1367,7 +1367,7 @@ TypeResult resolveType(
final s = schema.ofs![results.indexOf(result)];
b
..name = fields[result.name]
..type = refer(_makeNullable(result.name, true))
..type = refer(_makeNullable(result.name, !(schema.allOf?.contains(s) ?? false)))
..modifier = FieldModifier.final$
..docs.addAll(_descriptionToDocs(s.description));
},
@ -1390,7 +1390,8 @@ TypeResult resolveType(
(final b) => b
..name = fields[result.name]!
..toThis = true
..named = true,
..named = true
..required = schema.allOf != null,
),
],
]),
@ -1409,6 +1410,14 @@ TypeResult resolveType(
)
..body = Code(
<String>[
if (schema.allOf != null) ...[
'return ${state.prefix}$identifier(',
'data,',
for (final result in results) ...[
'${fields[result.name]!}: ${result.deserialize('data')},',
],
');',
] else ...[
for (final result in results) ...[
'${result.name}? ${fields[result.name]!};',
],
@ -1442,15 +1451,13 @@ TypeResult resolveType(
if (schema.oneOf != null) ...[
"assert([${fields.values.join(',')}].where((final x) => x != null).length == 1, 'Need oneOf for \$data');",
],
if (schema.allOf != null) ...[
"assert([${fields.values.join(',')}].where((final x) => x != null).length == ${fields.length}, 'Need allOf for \$data');",
],
'return ${state.prefix}$identifier(',
'data,',
for (final result in results) ...[
'${fields[result.name]!}: ${fields[result.name]!},',
],
');',
],
].join(),
);
},

Loading…
Cancel
Save