From 78d427d36e08586ed4ace26d01b252679fd157fa Mon Sep 17 00:00:00 2001 From: AAkira Date: Tue, 11 Apr 2023 09:09:49 +0900 Subject: [PATCH 1/3] Convert Date on json_serializable. --- .../languages/DartDioClientCodegen.java | 6 +++ .../resources/dart/libraries/dio/lib.mustache | 4 +- .../json_serializable/class.mustache | 4 ++ .../json_serializable/date.mustache | 40 +++++++++++++++++++ .../date_serializer.mustache | 15 +++++++ 5 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/date.mustache create mode 100644 modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/date_serializer.mustache 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 6d127c990f54..9d12bcd0880f 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 @@ -301,6 +301,12 @@ private void configureDateLibrary(String srcFolder) { importMapping.put("Date", "package:" + pubName + "/" + sourceFolder + "/" + modelPackage() + "/date.dart"); supportingFiles.add(new SupportingFile("serialization/built_value/date.mustache", srcFolder + File.separator + modelPackage(), "date.dart")); supportingFiles.add(new SupportingFile("serialization/built_value/date_serializer.mustache", srcFolder, "date_serializer.dart")); + } else if (SERIALIZATION_LIBRARY_JSON_SERIALIZABLE.equals(library)) { + typeMapping.put("date", "Date"); + typeMapping.put("Date", "Date"); + importMapping.put("Date", "package:" + pubName + "/" + sourceFolder + "/" + modelPackage() + "/date.dart"); + supportingFiles.add(new SupportingFile("serialization/json_serializable/date.mustache", srcFolder + File.separator + modelPackage(), "date.dart")); + supportingFiles.add(new SupportingFile("serialization/json_serializable/date_serializer.mustache", srcFolder + File.separator + modelPackage(), "date_serializer.dart")); } break; } diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/lib.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/lib.mustache index 1ac711810617..e8e6aeebdbb6 100644 --- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/lib.mustache +++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/lib.mustache @@ -3,8 +3,8 @@ export 'package:{{pubName}}/{{sourceFolder}}/api.dart'; export 'package:{{pubName}}/{{sourceFolder}}/auth/api_key_auth.dart'; export 'package:{{pubName}}/{{sourceFolder}}/auth/basic_auth.dart'; export 'package:{{pubName}}/{{sourceFolder}}/auth/oauth.dart'; -{{#useBuiltValue}}export 'package:{{pubName}}/{{sourceFolder}}/serializers.dart'; -{{#useDateLibCore}}export 'package:{{pubName}}/{{sourceFolder}}/{{modelPackage}}/date.dart';{{/useDateLibCore}}{{/useBuiltValue}} +{{#useBuiltValue}}export 'package:{{pubName}}/{{sourceFolder}}/serializers.dart';{{/useBuiltValue}} +{{#useDateLibCore}}export 'package:{{pubName}}/{{sourceFolder}}/{{modelPackage}}/date.dart';{{/useDateLibCore}} {{#apiInfo}}{{#apis}}export 'package:{{pubName}}/{{sourceFolder}}/{{apiPackage}}/{{classFilename}}.dart'; {{/apis}}{{/apiInfo}} diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/class.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/class.mustache index b4c10ab8e1ca..0d39e6cc762d 100644 --- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/class.mustache +++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/class.mustache @@ -1,4 +1,5 @@ import 'package:json_annotation/json_annotation.dart'; +{{#useDateLibCore}}import 'package:{{pubName}}/{{sourceFolder}}/{{modelPackage}}/date_serializer.dart';{{/useDateLibCore}} part '{{classFilename}}.g.dart'; @@ -50,6 +51,9 @@ class {{{classname}}} { @JsonKey(ignore: true) {{/isBinary}} + {{#isDate}} + @DateSerializer() + {{/isDate}} {{#required}} {{#finalProperties}}final {{/finalProperties}}{{{datatypeWithEnum}}}{{#isNullable}}?{{/isNullable}} {{{name}}}; diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/date.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/date.mustache new file mode 100644 index 000000000000..f73d81688162 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/date.mustache @@ -0,0 +1,40 @@ +/// A gregorian calendar date generated by +/// OpenAPI generator to differentiate +/// between [DateTime] and [Date] formats. +import 'package:json_annotation/json_annotation.dart'; + +part 'date.g.dart'; + +@JsonSerializable( + checked: true, + createToJson: true, + disallowUnrecognizedKeys: false, + explicitToJson: true, +) +class Date { + + const Date({ + required this.year, + required this.month, + required this.day, + }); + + factory Date.fromJson(Map json) => _$DateFromJson(json); + + final int year; + + final int month; + + final int day; + + Map toJson() => _$DateToJson(this); + + @override + String toString() { + final yyyy = year.toString(); + final mm = month.toString().padLeft(2, '0'); + final dd = day.toString().padLeft(2, '0'); + + return '$yyyy-$mm-$dd'; + } +} diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/date_serializer.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/date_serializer.mustache new file mode 100644 index 000000000000..a47874617c33 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/date_serializer.mustache @@ -0,0 +1,15 @@ +import 'package:json_annotation/json_annotation.dart'; +import 'package:{{pubName}}/src/model/date.dart'; + +class DateSerializer implements JsonConverter { + const DateSerializer(); + + @override + Date fromJson(String json) { + final parsed = DateTime.parse(json); + return Date(year: parsed.year, month: parsed.month, day: parsed.day); + } + + @override + String toJson(Date object) => object.toString(); +} From ed14536d6ba4158ffac032e4ff6f82a5563c66c2 Mon Sep 17 00:00:00 2001 From: AAkira Date: Tue, 11 Apr 2023 10:11:57 +0900 Subject: [PATCH 2/3] Update sample with date. --- .../.openapi-generator/FILES | 2 + .../doc/FakeApi.md | 4 +- .../doc/FormatTest.md | 2 +- .../doc/NullableClass.md | 2 +- .../lib/openapi.dart | 1 + .../lib/src/api/fake_api.dart | 3 +- .../model/additional_properties_class.dart | 1 + .../lib/src/model/all_of_with_single_ref.dart | 1 + .../lib/src/model/animal.dart | 1 + .../lib/src/model/api_response.dart | 1 + .../model/array_of_array_of_number_only.dart | 1 + .../lib/src/model/array_of_number_only.dart | 1 + .../lib/src/model/array_test.dart | 1 + .../lib/src/model/capitalization.dart | 1 + .../lib/src/model/cat.dart | 1 + .../lib/src/model/cat_all_of.dart | 1 + .../lib/src/model/category.dart | 1 + .../lib/src/model/class_model.dart | 1 + .../lib/src/model/date.dart | 40 +++++++++++++++++++ .../lib/src/model/date_serializer.dart | 15 +++++++ .../lib/src/model/deprecated_object.dart | 1 + .../lib/src/model/dog.dart | 1 + .../lib/src/model/dog_all_of.dart | 1 + .../lib/src/model/enum_arrays.dart | 1 + .../lib/src/model/enum_test.dart | 1 + .../lib/src/model/file_schema_test_class.dart | 1 + .../lib/src/model/foo.dart | 1 + .../src/model/foo_get_default_response.dart | 1 + .../lib/src/model/format_test.dart | 5 ++- .../lib/src/model/has_only_read_only.dart | 1 + .../lib/src/model/health_check_result.dart | 1 + .../lib/src/model/map_test.dart | 1 + ...rties_and_additional_properties_class.dart | 1 + .../lib/src/model/model200_response.dart | 1 + .../lib/src/model/model_client.dart | 1 + .../lib/src/model/model_file.dart | 1 + .../lib/src/model/model_list.dart | 1 + .../lib/src/model/model_return.dart | 1 + .../lib/src/model/name.dart | 1 + .../lib/src/model/nullable_class.dart | 5 ++- .../lib/src/model/number_only.dart | 1 + .../model/object_with_deprecated_fields.dart | 1 + .../lib/src/model/order.dart | 1 + .../lib/src/model/outer_composite.dart | 1 + .../outer_object_with_enum_property.dart | 1 + .../lib/src/model/pet.dart | 1 + .../lib/src/model/read_only_first.dart | 1 + .../lib/src/model/special_model_name.dart | 1 + .../lib/src/model/tag.dart | 1 + .../lib/src/model/user.dart | 1 + 50 files changed, 112 insertions(+), 7 deletions(-) create mode 100644 samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/date.dart create mode 100644 samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/date_serializer.dart diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/.openapi-generator/FILES b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/.openapi-generator/FILES index b34094eb0a2f..f07cbef22e53 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/.openapi-generator/FILES +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/.openapi-generator/FILES @@ -84,6 +84,8 @@ lib/src/model/cat.dart lib/src/model/cat_all_of.dart lib/src/model/category.dart lib/src/model/class_model.dart +lib/src/model/date.dart +lib/src/model/date_serializer.dart lib/src/model/deprecated_object.dart lib/src/model/dog.dart lib/src/model/dog_all_of.dart diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/FakeApi.md b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/FakeApi.md index 3d408769d11e..9796259a76bb 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/FakeApi.md +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/doc/FakeApi.md @@ -521,7 +521,7 @@ final int int64 = 789; // int | None final double float = 3.4; // double | None final String string = string_example; // String | None final MultipartFile binary = BINARY_DATA_HERE; // MultipartFile | None -final DateTime date = 2013-10-20; // DateTime | None +final Date date = 2013-10-20; // Date | None final DateTime dateTime = 2013-10-20T19:20:30+01:00; // DateTime | None final String password = password_example; // String | None final String callback = callback_example; // String | None @@ -547,7 +547,7 @@ Name | Type | Description | Notes **float** | **double**| None | [optional] **string** | **String**| None | [optional] **binary** | **MultipartFile**| None | [optional] - **date** | **DateTime**| None | [optional] + **date** | **Date**| None | [optional] **dateTime** | **DateTime**| None | [optional] **password** | **String**| None | [optional] **callback** | **String**| None | [optional] 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 83b60545eb61..058887dc29f3 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,7 +18,7 @@ Name | Type | Description | Notes **string** | **String** | | [optional] **byte** | **String** | | **binary** | [**MultipartFile**](MultipartFile.md) | | [optional] -**date** | [**DateTime**](DateTime.md) | | +**date** | [**Date**](Date.md) | | **dateTime** | [**DateTime**](DateTime.md) | | [optional] **uuid** | **String** | | [optional] **password** | **String** | | 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 70ac1091d417..4b0bfd3562bd 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,7 +12,7 @@ Name | Type | Description | Notes **numberProp** | **num** | | [optional] **booleanProp** | **bool** | | [optional] **stringProp** | **String** | | [optional] -**dateProp** | [**DateTime**](DateTime.md) | | [optional] +**dateProp** | [**Date**](Date.md) | | [optional] **datetimeProp** | [**DateTime**](DateTime.md) | | [optional] **arrayNullableProp** | **List<Object>** | | [optional] **arrayAndItemsNullableProp** | **List<Object>** | | [optional] diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/openapi.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/openapi.dart index 3beabf11dfcd..d73574aea351 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/openapi.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/openapi.dart @@ -7,6 +7,7 @@ export 'package:openapi/src/auth/api_key_auth.dart'; export 'package:openapi/src/auth/basic_auth.dart'; export 'package:openapi/src/auth/oauth.dart'; +export 'package:openapi/src/model/date.dart'; export 'package:openapi/src/api/another_fake_api.dart'; export 'package:openapi/src/api/default_api.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/api/fake_api.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/api/fake_api.dart index 6cb86a6e440a..b88045a09e9b 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/api/fake_api.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/api/fake_api.dart @@ -9,6 +9,7 @@ import 'dart:convert'; import 'package:openapi/src/deserialize.dart'; import 'package:dio/dio.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'; @@ -943,7 +944,7 @@ _responseData = deserialize(_response.data!, 'ModelCli double? float, String? string, MultipartFile? binary, - DateTime? date, + Date? date, DateTime? dateTime, String? password, String? callback, diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/additional_properties_class.dart index a3d4df084be5..0b1b895f2810 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/additional_properties_class.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/additional_properties_class.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'additional_properties_class.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/all_of_with_single_ref.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/all_of_with_single_ref.dart index b654a66733e9..efbc484084bc 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/all_of_with_single_ref.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/all_of_with_single_ref.dart @@ -5,6 +5,7 @@ // ignore_for_file: unused_element import 'package:openapi/src/model/single_ref_type.dart'; import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'all_of_with_single_ref.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/animal.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/animal.dart index 22a196ce7d7f..b7d8a8de7dba 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/animal.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/animal.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'animal.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/api_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/api_response.dart index c6700e2d39ce..540ef222eac5 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/api_response.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/api_response.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'api_response.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_of_array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_of_array_of_number_only.dart index 7372be1583f2..477e050074fc 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_of_array_of_number_only.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_of_array_of_number_only.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'array_of_array_of_number_only.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_of_number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_of_number_only.dart index d538bb312fde..f52110a93559 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_of_number_only.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_of_number_only.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'array_of_number_only.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_test.dart index 30a6ec8a8b72..57806376e1bc 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_test.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/array_test.dart @@ -5,6 +5,7 @@ // ignore_for_file: unused_element import 'package:openapi/src/model/read_only_first.dart'; import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'array_test.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/capitalization.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/capitalization.dart index 707cb05a040f..bba34427898c 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/capitalization.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/capitalization.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'capitalization.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat.dart index 0b176faf313e..e1bf4dae5968 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat.dart @@ -5,6 +5,7 @@ // ignore_for_file: unused_element import 'package:openapi/src/model/animal.dart'; import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'cat.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat_all_of.dart index abb9dbc25e5f..81b4af214cbe 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat_all_of.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/cat_all_of.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'cat_all_of.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/category.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/category.dart index b94c61579909..ece8a3741b28 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/category.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/category.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'category.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/class_model.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/class_model.dart index 01837bfcca96..155351fb6b2d 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/class_model.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/class_model.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'class_model.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/date.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/date.dart new file mode 100644 index 000000000000..f73d81688162 --- /dev/null +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/date.dart @@ -0,0 +1,40 @@ +/// A gregorian calendar date generated by +/// OpenAPI generator to differentiate +/// between [DateTime] and [Date] formats. +import 'package:json_annotation/json_annotation.dart'; + +part 'date.g.dart'; + +@JsonSerializable( + checked: true, + createToJson: true, + disallowUnrecognizedKeys: false, + explicitToJson: true, +) +class Date { + + const Date({ + required this.year, + required this.month, + required this.day, + }); + + factory Date.fromJson(Map json) => _$DateFromJson(json); + + final int year; + + final int month; + + final int day; + + Map toJson() => _$DateToJson(this); + + @override + String toString() { + final yyyy = year.toString(); + final mm = month.toString().padLeft(2, '0'); + final dd = day.toString().padLeft(2, '0'); + + return '$yyyy-$mm-$dd'; + } +} diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/date_serializer.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/date_serializer.dart new file mode 100644 index 000000000000..07e9e785bdae --- /dev/null +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/date_serializer.dart @@ -0,0 +1,15 @@ +import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date.dart'; + +class DateSerializer implements JsonConverter { + const DateSerializer(); + + @override + Date fromJson(String json) { + final parsed = DateTime.parse(json); + return Date(year: parsed.year, month: parsed.month, day: parsed.day); + } + + @override + String toJson(Date object) => object.toString(); +} diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/deprecated_object.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/deprecated_object.dart index e4371fdc696b..70ea150780a0 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/deprecated_object.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/deprecated_object.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'deprecated_object.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog.dart index a049d0479fb0..6b77da86f3e0 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog.dart @@ -5,6 +5,7 @@ // ignore_for_file: unused_element import 'package:openapi/src/model/animal.dart'; import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'dog.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog_all_of.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog_all_of.dart index 19bd4c0267be..9a8c084d87b4 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog_all_of.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/dog_all_of.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'dog_all_of.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/enum_arrays.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/enum_arrays.dart index a97d069a3d25..bd5030169d1f 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/enum_arrays.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/enum_arrays.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'enum_arrays.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/enum_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/enum_test.dart index 80555c14d038..aae6688025a7 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/enum_test.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/enum_test.dart @@ -8,6 +8,7 @@ import 'package:openapi/src/model/outer_enum_default_value.dart'; import 'package:openapi/src/model/outer_enum_integer.dart'; import 'package:openapi/src/model/outer_enum_integer_default_value.dart'; import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'enum_test.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/file_schema_test_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/file_schema_test_class.dart index bd2a9dc6f2fc..42eeff699a6e 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/file_schema_test_class.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/file_schema_test_class.dart @@ -5,6 +5,7 @@ // ignore_for_file: unused_element import 'package:openapi/src/model/model_file.dart'; import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'file_schema_test_class.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/foo.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/foo.dart index b43572d222cb..40951c59a729 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/foo.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/foo.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'foo.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/foo_get_default_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/foo_get_default_response.dart index acc1c60e4353..1fbfeeca09d8 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/foo_get_default_response.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/foo_get_default_response.dart @@ -5,6 +5,7 @@ // ignore_for_file: unused_element import 'package:openapi/src/model/foo.dart'; import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'foo_get_default_response.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/format_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/format_test.dart index 91b35595a34d..76d4ba83a24b 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/format_test.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/format_test.dart @@ -3,8 +3,10 @@ // // ignore_for_file: unused_element +import 'package:openapi/src/model/date.dart'; import 'package:dio/dio.dart'; import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'format_test.g.dart'; @@ -184,8 +186,9 @@ class FormatTest { includeIfNull: false ) + @DateSerializer() - final DateTime date; + final Date date; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/has_only_read_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/has_only_read_only.dart index 84c99fbc188c..d6cbe6a5bb8c 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/has_only_read_only.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/has_only_read_only.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'has_only_read_only.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/health_check_result.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/health_check_result.dart index fcb2973b7514..ea890422afd3 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/health_check_result.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/health_check_result.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'health_check_result.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/map_test.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/map_test.dart index 7ab19eabd5cd..3ad558c18ed0 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/map_test.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/map_test.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'map_test.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/mixed_properties_and_additional_properties_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/mixed_properties_and_additional_properties_class.dart index e2e3cd0b857a..4bc1bba41fa6 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/mixed_properties_and_additional_properties_class.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/mixed_properties_and_additional_properties_class.dart @@ -5,6 +5,7 @@ // ignore_for_file: unused_element import 'package:openapi/src/model/animal.dart'; import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'mixed_properties_and_additional_properties_class.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model200_response.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model200_response.dart index 346f1257555f..6fda5ad74e8e 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model200_response.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model200_response.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'model200_response.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_client.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_client.dart index 14e22005a161..6ce35a61559f 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_client.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_client.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'model_client.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_file.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_file.dart index fe95e3ff0029..1823d6f102ea 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_file.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_file.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'model_file.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_list.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_list.dart index 543b79ac9f13..aec78bb1ba36 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_list.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_list.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'model_list.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_return.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_return.dart index 192b134d8fc6..4b9624d04694 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_return.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_return.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'model_return.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/name.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/name.dart index 6613fa3afc8b..bccf4a8161a1 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/name.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/name.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'name.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/nullable_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/nullable_class.dart index 897d489ba450..f7146634605d 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/nullable_class.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/nullable_class.dart @@ -3,7 +3,9 @@ // // ignore_for_file: unused_element +import 'package:openapi/src/model/date.dart'; import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'nullable_class.g.dart'; @@ -98,8 +100,9 @@ class NullableClass { includeIfNull: false ) + @DateSerializer() - final DateTime? dateProp; + final Date? dateProp; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/number_only.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/number_only.dart index 3ca6bf704b59..57c24cd3b61d 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/number_only.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/number_only.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'number_only.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/object_with_deprecated_fields.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/object_with_deprecated_fields.dart index 17361613609c..009d3f9ad322 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/object_with_deprecated_fields.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/object_with_deprecated_fields.dart @@ -5,6 +5,7 @@ // ignore_for_file: unused_element import 'package:openapi/src/model/deprecated_object.dart'; import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'object_with_deprecated_fields.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/order.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/order.dart index 54134b511316..e413a7645571 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/order.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/order.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'order.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_composite.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_composite.dart index f2509cb99213..49de8dfb3984 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_composite.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_composite.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'outer_composite.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_object_with_enum_property.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_object_with_enum_property.dart index 76d18676a110..91926eff70ef 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_object_with_enum_property.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_object_with_enum_property.dart @@ -5,6 +5,7 @@ // ignore_for_file: unused_element import 'package:openapi/src/model/outer_enum_integer.dart'; import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'outer_object_with_enum_property.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/pet.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/pet.dart index 28d6294bae59..2c45c180d7e2 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/pet.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/pet.dart @@ -6,6 +6,7 @@ import 'package:openapi/src/model/category.dart'; import 'package:openapi/src/model/tag.dart'; import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'pet.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/read_only_first.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/read_only_first.dart index c71c088f1381..eaac9df4f4e5 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/read_only_first.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/read_only_first.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'read_only_first.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/special_model_name.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/special_model_name.dart index acd3ba099576..70edcc48b3a9 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/special_model_name.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/special_model_name.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'special_model_name.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/tag.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/tag.dart index d8a87eec1820..3385f82dee1d 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/tag.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/tag.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'tag.g.dart'; diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/user.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/user.dart index 62f132ce776d..82fdc3852fac 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/user.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/user.dart @@ -4,6 +4,7 @@ // ignore_for_file: unused_element import 'package:json_annotation/json_annotation.dart'; +import 'package:openapi/src/model/date_serializer.dart'; part 'user.g.dart'; From eba3d1fe3fcb057bf9dbe8e4f2b961de127c1244 Mon Sep 17 00:00:00 2001 From: AAkira Date: Wed, 19 Apr 2023 12:08:11 +0900 Subject: [PATCH 3/3] Add the date serializer annotation if a list has date format. --- .../dio/serialization/json_serializable/class.mustache | 3 +++ 1 file changed, 3 insertions(+) diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/class.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/class.mustache index 0d39e6cc762d..ee7203335f7d 100644 --- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/class.mustache +++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/class.mustache @@ -54,6 +54,9 @@ class {{{classname}}} { {{#isDate}} @DateSerializer() {{/isDate}} + {{#isArray}}{{#items}}{{#isDate}} + @DateSerializer() + {{/isDate}}{{/items}}{{/isArray}} {{#required}} {{#finalProperties}}final {{/finalProperties}}{{{datatypeWithEnum}}}{{#isNullable}}?{{/isNullable}} {{{name}}};