diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java index b8ec826fd9466aa1291d7c8864bb6cc4cd00dc86..0fff84f1fbe7e2bbdfece6810532d2ccef21497d 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/DartDioClientCodegen.java @@ -249,6 +249,9 @@ public class DartDioClientCodegen extends AbstractDartCodegen { imports.put("JsonObject", "package:built_value/json_object.dart"); imports.put("Uint8List", "dart:typed_data"); imports.put("MultipartFile", DIO_IMPORT); + + //reserved words specific to built_value + reservedWords.add("update"); } private void configureSerializationLibraryJsonSerializable(String srcFolder) { @@ -264,6 +267,10 @@ public class DartDioClientCodegen extends AbstractDartCodegen { } private void configureDateLibrary(String srcFolder) { + languageSpecificPrimitives.add("date"); + languageSpecificPrimitives.add("Date"); + languageSpecificPrimitives.add("DateTime"); + switch (dateLibrary) { case DATE_LIBRARY_TIME_MACHINE: additionalProperties.put("useDateLibTimeMachine", "true"); @@ -475,6 +482,19 @@ public class DartDioClientCodegen extends AbstractDartCodegen { return resultImports; } + @Override + public CodegenProperty fromProperty(String name, Schema p, boolean required) { + final CodegenProperty property = super.fromProperty(name, p, required); + Schema referencedSchema = ModelUtils.getReferencedSchema(this.openAPI, p); + + //Catch types that are models and maps (i.e. additionalProperties: true) and render them the same as a model + if (ModelUtils.isModel(referencedSchema) && ModelUtils.isMapSchema(referencedSchema)) { + property.isModel = true; + } + return property; + } + + static class BuiltValueSerializer { final boolean isArray; diff --git a/modules/openapi-generator/src/main/resources/dart/dart-keywords.txt b/modules/openapi-generator/src/main/resources/dart/dart-keywords.txt index 5e51f8cceff61cd87615ef4e3d3aaa790bd1e085..8a8e4264978399bf9786fb9d29cfd80c6282958e 100644 --- a/modules/openapi-generator/src/main/resources/dart/dart-keywords.txt +++ b/modules/openapi-generator/src/main/resources/dart/dart-keywords.txt @@ -66,4 +66,4 @@ var void while with -yield \ No newline at end of file +yield diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache index 66fe59788b0f04271d2fdac010df02077e98f2e6..957a4852e4245f9ae3148b7469ed23d255128b4c 100644 --- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache +++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/built_value/class.mustache @@ -27,7 +27,7 @@ abstract class {{classname}} implements Built<{{classname}}, {{classname}}Builde @BuiltValueField(wireName: r'{{baseName}}') {{>serialization/built_value/variable_type}}{{^isNullable}}{{^required}}?{{/required}}{{/isNullable}} get {{name}}; {{#allowableValues}} - // {{#min}}range from {{{min}}} to {{{max}}}{{/min}}{{^min}}enum {{name}}Enum { {{#values}} {{{.}}}, {{/values}} };{{/min}} + // {{#min}}range from {{{min}}} to {{{max}}}{{/min}}{{^min}}enum {{name}}Enum { {{#values}} {{#.}}{{{.}}}{{/.}}{{^.}}null{{/.}}, {{/values}} };{{/min}} {{/allowableValues}} {{/vars}} diff --git a/pom.xml b/pom.xml index df0a4a8f97ce072ed5fa59b3ae3485141debfbe4..ba9f41d61074e44183c1689dad05287c81b8a04c 100644 --- a/pom.xml +++ b/pom.xml @@ -1473,7 +1473,7 @@ <jackson-threetenbp.version>2.10.0</jackson-threetenbp.version> <jackson.version>2.13.1</jackson.version> <jacoco.version>0.8.7</jacoco.version> - <jmustache.version>1.14</jmustache.version> + <jmustache.version>1.15</jmustache.version> <junit.version>4.13.2</junit.version> <kotlin.version>1.6.10</kotlin.version> <maven-compiler-plugin.version>3.10.1</maven-compiler-plugin.version> diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/FormatTest.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/FormatTest.md index 83b60545eb616d3d580ab96b2e4664cbbf3682dd..28f76d9739746f25d16206139484a1abf53d81c8 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/FormatTest.md +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/FormatTest.md @@ -18,8 +18,8 @@ Name | Type | Description | Notes **string** | **String** | | [optional] **byte** | **String** | | **binary** | [**MultipartFile**](MultipartFile.md) | | [optional] -**date** | [**DateTime**](DateTime.md) | | -**dateTime** | [**DateTime**](DateTime.md) | | [optional] +**date** | **DateTime** | | +**dateTime** | **DateTime** | | [optional] **uuid** | **String** | | [optional] **password** | **String** | | **patternWithDigits** | **String** | A string that is a 10 digit number. Can have leading zeros. | [optional] diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/MixedPropertiesAndAdditionalPropertiesClass.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/MixedPropertiesAndAdditionalPropertiesClass.md index 66d0d39c42be76078df10acdcd65bcc6b446b8b7..80e05e0cc3b031013e76507739b7d48b7634c8df 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/MixedPropertiesAndAdditionalPropertiesClass.md +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/MixedPropertiesAndAdditionalPropertiesClass.md @@ -9,7 +9,7 @@ import 'package:openapi/api.dart'; Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **uuid** | **String** | | [optional] -**dateTime** | [**DateTime**](DateTime.md) | | [optional] +**dateTime** | **DateTime** | | [optional] **map** | [**Map<String, Animal>**](Animal.md) | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/NullableClass.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/NullableClass.md index 70ac1091d4171ecbcf59ed153b043aa9222c1f56..f08b18da7461d644dd4caa59ace67c5d6d860753 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/NullableClass.md +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/NullableClass.md @@ -12,8 +12,8 @@ Name | Type | Description | Notes **numberProp** | **num** | | [optional] **booleanProp** | **bool** | | [optional] **stringProp** | **String** | | [optional] -**dateProp** | [**DateTime**](DateTime.md) | | [optional] -**datetimeProp** | [**DateTime**](DateTime.md) | | [optional] +**dateProp** | **DateTime** | | [optional] +**datetimeProp** | **DateTime** | | [optional] **arrayNullableProp** | **List<Object>** | | [optional] **arrayAndItemsNullableProp** | **List<Object>** | | [optional] **arrayItemsNullable** | **List<Object>** | | [optional] diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/Order.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/Order.md index bde5ffe51a2c19f537ca596c2e737ea9f610f3ff..3de4cdabdcc98953eb4a9bf41180313c004edd4d 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/Order.md +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/Order.md @@ -11,7 +11,7 @@ Name | Type | Description | Notes **id** | **int** | | [optional] **petId** | **int** | | [optional] **quantity** | **int** | | [optional] -**shipDate** | [**DateTime**](DateTime.md) | | [optional] +**shipDate** | **DateTime** | | [optional] **status** | **String** | Order Status | [optional] **complete** | **bool** | | [optional] [default to false] diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/doc/FormatTest.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/doc/FormatTest.md index f811264ca2bac7e7a070a7246f2f28caf615a1ee..227b46faa634ed381362160dbb1d6b03de0d5daa 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/doc/FormatTest.md +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/doc/FormatTest.md @@ -18,8 +18,8 @@ Name | Type | Description | Notes **string** | **String** | | [optional] **byte** | **String** | | **binary** | [**Uint8List**](Uint8List.md) | | [optional] -**date** | [**Date**](Date.md) | | -**dateTime** | [**DateTime**](DateTime.md) | | [optional] +**date** | **Date** | | +**dateTime** | **DateTime** | | [optional] **uuid** | **String** | | [optional] **password** | **String** | | **patternWithDigits** | **String** | A string that is a 10 digit number. Can have leading zeros. | [optional] diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/doc/MixedPropertiesAndAdditionalPropertiesClass.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/doc/MixedPropertiesAndAdditionalPropertiesClass.md index b1a4c4ccc4011b22aa55f7e1ff762e3b3958e036..f7d7fffcde1638583baad512d80638a622a8979b 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/doc/MixedPropertiesAndAdditionalPropertiesClass.md +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/doc/MixedPropertiesAndAdditionalPropertiesClass.md @@ -9,7 +9,7 @@ import 'package:openapi/api.dart'; Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **uuid** | **String** | | [optional] -**dateTime** | [**DateTime**](DateTime.md) | | [optional] +**dateTime** | **DateTime** | | [optional] **map** | [**BuiltMap<String, Animal>**](Animal.md) | | [optional] [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/doc/NullableClass.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/doc/NullableClass.md index 4ce8d5e1757605dc804e15baee66ca354f7e2809..848e3382e606d3af0a1c10e623331375c5abf280 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/doc/NullableClass.md +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/doc/NullableClass.md @@ -12,8 +12,8 @@ Name | Type | Description | Notes **numberProp** | **num** | | [optional] **booleanProp** | **bool** | | [optional] **stringProp** | **String** | | [optional] -**dateProp** | [**Date**](Date.md) | | [optional] -**datetimeProp** | [**DateTime**](DateTime.md) | | [optional] +**dateProp** | **Date** | | [optional] +**datetimeProp** | **DateTime** | | [optional] **arrayNullableProp** | [**BuiltList<JsonObject>**](JsonObject.md) | | [optional] **arrayAndItemsNullableProp** | [**BuiltList<JsonObject>**](JsonObject.md) | | [optional] **arrayItemsNullable** | [**BuiltList<JsonObject>**](JsonObject.md) | | [optional] diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/doc/Order.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/doc/Order.md index bde5ffe51a2c19f537ca596c2e737ea9f610f3ff..3de4cdabdcc98953eb4a9bf41180313c004edd4d 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/doc/Order.md +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/doc/Order.md @@ -11,7 +11,7 @@ Name | Type | Description | Notes **id** | **int** | | [optional] **petId** | **int** | | [optional] **quantity** | **int** | | [optional] -**shipDate** | [**DateTime**](DateTime.md) | | [optional] +**shipDate** | **DateTime** | | [optional] **status** | **String** | Order Status | [optional] **complete** | **bool** | | [optional] [default to false] diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/api/fake_api.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/api/fake_api.dart index 37506ff1cfe621f4185268d6674b614e321ce0fc..52036d28621bfa7deb929c1fa3f15ce8b1b49f96 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/api/fake_api.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake/lib/src/api/fake_api.dart @@ -10,7 +10,6 @@ import 'package:dio/dio.dart'; import 'dart:typed_data'; import 'package:built_collection/built_collection.dart'; import 'package:openapi/src/api_util.dart'; -import 'package:openapi/src/model/date.dart'; import 'package:openapi/src/model/file_schema_test_class.dart'; import 'package:openapi/src/model/health_check_result.dart'; import 'package:openapi/src/model/model_client.dart';