From 6425fbe3ed79f8a422312d138aad958f0f51dbeb Mon Sep 17 00:00:00 2001 From: Akira Aratani Date: Thu, 2 Nov 2023 12:15:23 +0900 Subject: [PATCH] [dart-dio] Add toString in Enum on json_serializer (#15387) * Bump up the dart version. * Add toString on enum. * [dart-dio/json_serializable] Fix enum converter for non-string. * [dart-dio/json_serializable] Bump up the dart version only json_serializable. * [dart-dio/json_serializable] Rename enum value. --- .../resources/dart/libraries/dio/pubspec.mustache | 2 +- .../serialization/json_serializable/enum.mustache | 9 ++++++++- .../lib/src/model/model_enum_class.dart | 15 +++++++++++---- .../lib/src/model/outer_enum.dart | 15 +++++++++++---- .../lib/src/model/outer_enum_default_value.dart | 15 +++++++++++---- .../lib/src/model/outer_enum_integer.dart | 15 +++++++++++---- .../model/outer_enum_integer_default_value.dart | 15 +++++++++++---- .../lib/src/model/single_ref_type.dart | 13 ++++++++++--- .../pubspec.yaml | 2 +- 9 files changed, 75 insertions(+), 26 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/pubspec.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/pubspec.mustache index e1201880b0c9..03255f3eee86 100644 --- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/pubspec.mustache +++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/pubspec.mustache @@ -10,7 +10,7 @@ publish_to: {{.}} {{/pubPublishTo}} environment: - sdk: '>=2.15.0 <3.0.0' + sdk: '>={{#useJsonSerializable}}2.17.0{{/useJsonSerializable}}{{^useJsonSerializable}}2.15.0{{/useJsonSerializable}} <3.0.0' dependencies: dio: '^5.2.0' diff --git a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/enum.mustache b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/enum.mustache index dbb1ed2cd22a..118fb8fc573b 100644 --- a/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/enum.mustache +++ b/modules/openapi-generator/src/main/resources/dart/libraries/dio/serialization/json_serializable/enum.mustache @@ -11,7 +11,14 @@ enum {{{classname}}} { /// {{{.}}} {{/description}} @JsonValue({{#isString}}r{{/isString}}{{{value}}}) - {{{name}}}, + {{{name}}}({{^isString}}'{{/isString}}{{#isString}}r{{/isString}}{{{value}}}{{^isString}}'{{/isString}}){{^-last}},{{/-last}}{{#-last}};{{/-last}} {{/enumVars}} {{/allowableValues}} + + const {{{classname}}}(this.value); + + final String value; + + @override + String toString() => value; } \ No newline at end of file diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_enum_class.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_enum_class.dart index 8abf107d98e6..2cecd3b9c72c 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_enum_class.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/model_enum_class.dart @@ -8,11 +8,18 @@ import 'package:json_annotation/json_annotation.dart'; enum ModelEnumClass { @JsonValue(r'_abc') - abc, + abc(r'_abc'), @JsonValue(r'-efg') - efg, + efg(r'-efg'), @JsonValue(r'(xyz)') - leftParenthesisXyzRightParenthesis, + leftParenthesisXyzRightParenthesis(r'(xyz)'), @JsonValue(r'unknown_default_open_api') - unknownDefaultOpenApi, + unknownDefaultOpenApi(r'unknown_default_open_api'); + + const ModelEnumClass(this.value); + + final String value; + + @override + String toString() => value; } diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum.dart index 514507968c66..c3ba7b26a6b6 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum.dart @@ -8,11 +8,18 @@ import 'package:json_annotation/json_annotation.dart'; enum OuterEnum { @JsonValue(r'placed') - placed, + placed(r'placed'), @JsonValue(r'approved') - approved, + approved(r'approved'), @JsonValue(r'delivered') - delivered, + delivered(r'delivered'), @JsonValue(r'unknown_default_open_api') - unknownDefaultOpenApi, + unknownDefaultOpenApi(r'unknown_default_open_api'); + + const OuterEnum(this.value); + + final String value; + + @override + String toString() => value; } diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_default_value.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_default_value.dart index 0c8116edea96..955683b929b3 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_default_value.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_default_value.dart @@ -8,11 +8,18 @@ import 'package:json_annotation/json_annotation.dart'; enum OuterEnumDefaultValue { @JsonValue(r'placed') - placed, + placed(r'placed'), @JsonValue(r'approved') - approved, + approved(r'approved'), @JsonValue(r'delivered') - delivered, + delivered(r'delivered'), @JsonValue(r'unknown_default_open_api') - unknownDefaultOpenApi, + unknownDefaultOpenApi(r'unknown_default_open_api'); + + const OuterEnumDefaultValue(this.value); + + final String value; + + @override + String toString() => value; } diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_integer.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_integer.dart index 34268d0e9c53..b1464c0dda3c 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_integer.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_integer.dart @@ -8,11 +8,18 @@ import 'package:json_annotation/json_annotation.dart'; enum OuterEnumInteger { @JsonValue(0) - number0, + number0('0'), @JsonValue(1) - number1, + number1('1'), @JsonValue(2) - number2, + number2('2'), @JsonValue(11184809) - unknownDefaultOpenApi, + unknownDefaultOpenApi('11184809'); + + const OuterEnumInteger(this.value); + + final String value; + + @override + String toString() => value; } diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_integer_default_value.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_integer_default_value.dart index 97b325938828..64c416abec7c 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_integer_default_value.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/outer_enum_integer_default_value.dart @@ -8,11 +8,18 @@ import 'package:json_annotation/json_annotation.dart'; enum OuterEnumIntegerDefaultValue { @JsonValue(0) - number0, + number0('0'), @JsonValue(1) - number1, + number1('1'), @JsonValue(2) - number2, + number2('2'), @JsonValue(11184809) - unknownDefaultOpenApi, + unknownDefaultOpenApi('11184809'); + + const OuterEnumIntegerDefaultValue(this.value); + + final String value; + + @override + String toString() => value; } diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/single_ref_type.dart b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/single_ref_type.dart index ca56d9841a5a..9ee2644bf813 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/single_ref_type.dart +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/lib/src/model/single_ref_type.dart @@ -8,9 +8,16 @@ import 'package:json_annotation/json_annotation.dart'; enum SingleRefType { @JsonValue(r'admin') - admin, + admin(r'admin'), @JsonValue(r'user') - user, + user(r'user'), @JsonValue(r'unknown_default_open_api') - unknownDefaultOpenApi, + unknownDefaultOpenApi(r'unknown_default_open_api'); + + const SingleRefType(this.value); + + final String value; + + @override + String toString() => value; } diff --git a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/pubspec.yaml b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/pubspec.yaml index d005a785419f..dc16507435f0 100644 --- a/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/pubspec.yaml +++ b/samples/openapi3/client/petstore/dart-dio/petstore_client_lib_fake-json_serializable/pubspec.yaml @@ -4,7 +4,7 @@ description: OpenAPI API client homepage: homepage environment: - sdk: '>=2.15.0 <3.0.0' + sdk: '>=2.17.0 <3.0.0' dependencies: dio: '^5.2.0'