From 86f17757a8ca8372a764907bc151dc1aee265b9f Mon Sep 17 00:00:00 2001 From: StarProxima <maks.prozorov1@yandex.ru> Date: Thu, 26 Oct 2023 02:10:05 +0300 Subject: [PATCH] #127 --- swagger_parser/CHANGELOG.md | 1 + swagger_parser/lib/src/utils/type_utils.dart | 2 +- swagger_parser/test/generator/data_classes_test.dart | 11 +++++++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/swagger_parser/CHANGELOG.md b/swagger_parser/CHANGELOG.md index b7c6b954..c632ef6a 100644 --- a/swagger_parser/CHANGELOG.md +++ b/swagger_parser/CHANGELOG.md @@ -1,6 +1,7 @@ ## 1.11.0 - Added unknown value to all enums to maintain backwards compatibility when adding new values on the backend - Add new config parameter `unknown_enum_value` (dart only) ([#106](https://github.com/Carapacik/swagger_parser/issues/106)) +- Support String values with spaces for enums ([#127](https://github.com/Carapacik/swagger_parser/issues/127)) ## 1.10.6 - Fixed map objects parsing as separate entities ([#124](https://github.com/Carapacik/swagger_parser/issues/124)) diff --git a/swagger_parser/lib/src/utils/type_utils.dart b/swagger_parser/lib/src/utils/type_utils.dart index 9719a9a1..da25cbbb 100644 --- a/swagger_parser/lib/src/utils/type_utils.dart +++ b/swagger_parser/lib/src/utils/type_utils.dart @@ -61,7 +61,7 @@ String uniqueName({bool isEnum = false}) { return name; } -final _enumNameRegExp = RegExp(r'^[a-zA-Z\d_-]*$'); +final _enumNameRegExp = RegExp(r'^[a-zA-Z\d_-\s]*$'); final _startWithNumberRegExp = RegExp(r'^-?\d+'); /// Protect default enum value from incorrect symbols, keywords, etc. diff --git a/swagger_parser/test/generator/data_classes_test.dart b/swagger_parser/test/generator/data_classes_test.dart index 226073dd..50d420fb 100644 --- a/swagger_parser/test/generator/data_classes_test.dart +++ b/swagger_parser/test/generator/data_classes_test.dart @@ -1092,6 +1092,7 @@ class ClassName with _$ClassName { '3item_three', '4ITEM-FOUR', '5иллегалчарактер', + '6 item six', }, ), ), @@ -1178,7 +1179,10 @@ enum EnumNameStringWithLeadingNumbers { /// Incorrect name has been replaced. Original name: `5иллегалчарактер`. @JsonValue('5иллегалчарактер') - undefined0; + undefined0, + + @JsonValue('6 item six') + value6ItemSix; } '''; @@ -1357,7 +1361,7 @@ enum KeywordsName { name: 'EnumNameString', type: 'string', items: UniversalEnumItem.listFromNames( - {'itemOne', 'ItemTwo', 'item_three', 'ITEM-FOUR'}, + {'itemOne', 'ItemTwo', 'item_three', 'ITEM-FOUR', 'Item five'}, ), ), ]; @@ -1414,6 +1418,9 @@ enum EnumNameString { @JsonValue('ITEM-FOUR') itemFour('ITEM-FOUR'), + @JsonValue('Item five') + itemFive('Item five'), + /// Default value for all unparsed values, allows backward compatibility when adding new values on the backend. $unknown(null);