From 86503b809585f05919bc8011f6db643f1a2b3502 Mon Sep 17 00:00:00 2001 From: Uladzimir_Paliukhovich Date: Tue, 5 Mar 2024 17:30:03 +0300 Subject: [PATCH] Development (#731) * Fixed some issues * formatted code * updated SDK * Updated SDK and version * Fixed generation of lists of classes * Fixed generation $Items classes * Updated pubspec and changelog * Fixed #524 * Fixed #598 Generation of query enum parameters * Fixed conflicts * Fixed some issues in swaggers * Updated changelog and pubspec * Fix #583, #637, #619 and update readme (#638) * fix #583 and update readme * fix #637 * fix #619 * Fixed generation of some fields * Removed test * Fixed classes named List * Fixed generation of query parameters with ref default type * Fixed generation of DateTime parameters * Fixed generation of responses in some cases * Some fixes * Updated changelog and pubspec * Implemented not nullable fields * Fixed tests * fixed generation of some swaggers * Added ability to return String values * Returned main.dart content * Updated pubspec and changelog * Fixed generation of required and not required fields * Added check for object ref in body * Fixed some things * Fixed tests * Fixed tests * Fixed some things * Updated changelog and pubspec * Removed not needed lines in tests * Fixed generation of nullable responses * Added generation of DateTime * Updated pubspec and changelog * Fixed tests * Fixed #669 Generation models from content schema allof * Fixed #665 generation putIfAbsent for response from content schema * Fixed generation of nullable and required properties * Fixed tests * Fixed some stuff related to nullable properties * Updated changelog and pubspec * Formatted code * Formatted code * Fixed tests * Fixed generation of some enums inside classes * Implemented support of exploded parameters * Pushed constants file * Fixed generation of allOf for request bodies * Implemented overriden_models functionality * Improved overriden models logic * Fixed tests * Updated pubspec and changelog * Removed support of exploded parameters * Fixed generation of patameters contains keywords * Updated pubspec and changelog * Fixed generation of nullable and not nullable fields * Fixed generation of list parameters with specific names * Fixed formurlencoded requests * Revert "Fixed formurlencoded requests" This reverts commit d103118975e7f66ec2cbf10a1f9d28ef935be6eb. * Updated changelog and pubspec * formatted code * Fixed version in changelog * Added generation of writeOnly and readOnly fields as nullable and no required (Issue 487) * Fixed generatino of DateTime query parameters (Issue 536) * Updated pubspec and changelog * Fixed generation in some cases * Added ability to rename downloaded files * Updated example * Implemented support of deprecated fields annotations * Added support of deprecated requests annotations * Fixed tests, updated pubspec and changelog * Fixed putIfAbsent for allOf schemas #700 * Fixed tests * Implemented new build option * Some fixes * Implemented new generator option * Updated changelog, readme and pubspec * Fixed conflicts * Fixed generation of requestBody when one oneOf provided * Added override keyword to exceptionWords * Fixed generation of allOf models * Revert "Fixed generation of allOf models" This reverts commit b61b61320e5d0939532a7df0e31bed0ed2403d52. * Updated pubspec and changelog * Updated changelog * Fixed #722 generation of some files * Fixed generation of quoted in enum names --------- Co-authored-by: Uladzimir Paliukhovich Co-authored-by: Romain --- lib/src/code_generators/enum_model.dart | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/src/code_generators/enum_model.dart b/lib/src/code_generators/enum_model.dart index d2674356..03f4689e 100644 --- a/lib/src/code_generators/enum_model.dart +++ b/lib/src/code_generators/enum_model.dart @@ -20,6 +20,10 @@ class EnumModel { @override String toString() => _getEnumContent(); + static String _normalizeJsonKeyString(String jsonKey) { + return jsonKey.replaceAll("\$", "\\\$").replaceAll('\'', '\\\''); + } + String _getEnumContent() { final resultStrings = []; @@ -42,10 +46,10 @@ class EnumModel { if (isInteger) { resultStrings.add( - "\t@JsonValue(${value.replaceAll("\$", "\\\$")})\n\t$validatedValue"); + "\t@JsonValue(${_normalizeJsonKeyString(value)})\n\t$validatedValue"); } else { resultStrings.add( - "\t@JsonValue('${value.replaceAll("\$", "\\\$")}')\n\t$validatedValue"); + "\t@JsonValue('${_normalizeJsonKeyString(value)}')\n\t$validatedValue"); } } @@ -97,7 +101,7 @@ const $name(this.value); result = '\$$result'; } - return '$result(${isInteger ? fieldValue : '\'$fieldValue\''})'; + return '$result(${isInteger ? fieldValue : '\'${_normalizeJsonKeyString(fieldValue)}\''})'; } String generateFromJsonToJson([bool caseSensitive = true]) {