From d4e77cc80ceb12102d78b33cd1c97b1ce0931033 Mon Sep 17 00:00:00 2001 From: jld3103 Date: Fri, 25 Nov 2022 08:43:33 +0100 Subject: [PATCH] dynamite: Support default values for objects --- .../dynamite/lib/src/openapi_builder.dart | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/packages/dynamite/lib/src/openapi_builder.dart b/packages/dynamite/lib/src/openapi_builder.dart index 3d65474e..71169583 100644 --- a/packages/dynamite/lib/src/openapi_builder.dart +++ b/packages/dynamite/lib/src/openapi_builder.dart @@ -533,11 +533,23 @@ class OpenAPIBuilder implements Builder { ..optionalParameters.addAll( schema.properties!.keys.map( (final propertyName) => Parameter( - (final b) => b - ..name = _toDartName(propertyName) - ..toThis = true - ..named = true - ..required = (schema.required ?? []).contains(propertyName), + (final b) { + final propertySchema = schema.properties![propertyName]!; + b + ..name = _toDartName(propertyName) + ..toThis = true + ..named = true + ..required = (schema.required ?? []).contains(propertyName) && + propertySchema.default_ == null; + if (propertySchema.default_ != null) { + final value = propertySchema.default_!.toString(); + final result = resolveType( + propertySchema.type!, + propertySchema, + ); + b.defaultTo = Code(_valueToEscapedValue(result.name, value)); + } + }, ), ), ),