add enum mapping option to dart generators (#17298)

This commit is contained in:
William Cheng 2023-12-04 12:32:36 +08:00 committed by GitHub
parent ac45e3ddab
commit bbd0ce38be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 3 deletions

View File

@ -4,3 +4,5 @@ inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml
templateDir: modules/openapi-generator/src/main/resources/dart2
additionalProperties:
hideGenerationTimestamp: "true"
enumNameMappings:
delivered: shipped

View File

@ -712,6 +712,10 @@ public abstract class AbstractDartCodegen extends DefaultCodegen {
@Override
public String toEnumVarName(String value, String datatype) {
if (enumNameMapping.containsKey(value)) {
return enumNameMapping.get(value);
}
if (value.length() == 0) {
return "empty";
}

View File

@ -201,13 +201,13 @@ class OrderStatusEnum {
static const placed = OrderStatusEnum._(r'placed');
static const approved = OrderStatusEnum._(r'approved');
static const delivered = OrderStatusEnum._(r'delivered');
static const shipped = OrderStatusEnum._(r'delivered');
/// List of all possible values in this [enum][OrderStatusEnum].
static const values = <OrderStatusEnum>[
placed,
approved,
delivered,
shipped,
];
static OrderStatusEnum? fromJson(dynamic value) => OrderStatusEnumTypeTransformer().decode(value);
@ -248,7 +248,7 @@ class OrderStatusEnumTypeTransformer {
switch (data) {
case r'placed': return OrderStatusEnum.placed;
case r'approved': return OrderStatusEnum.approved;
case r'delivered': return OrderStatusEnum.delivered;
case r'delivered': return OrderStatusEnum.shipped;
default:
if (!allowNull) {
throw ArgumentError('Unknown enum value to decode: $data');