[dart-dio] Add r before '{{MappingName}}' to handle special characters in discriminators (#14167)

* Add `r` before '{{MappingName}}' to handle special characters

* Update samples

* use propertyBaseName instead of propertyName

* update samples
This commit is contained in:
Ahmed Fwela
2022-12-05 09:00:44 +02:00
committed by GitHub
parent 0103d400c2
commit 4e387cad53
15 changed files with 31 additions and 31 deletions

View File

@@ -15,7 +15,7 @@
{{/-first}}{{/anyOf}}{{#oneOf}}{{#-first}} /// One Of {{#oneOf}}[{{{.}}}]{{^-last}}, {{/-last}}{{/oneOf}}
OneOf get oneOf;
{{/-first}}{{/oneOf}}{{#discriminator}} static const String discriminatorFieldName = r'{{propertyName}}';{{#hasDiscriminatorWithNonEmptyMapping}}
{{/-first}}{{/oneOf}}{{#discriminator}} static const String discriminatorFieldName = r'{{propertyBaseName}}';{{#hasDiscriminatorWithNonEmptyMapping}}
static const Map<String, Type> discriminatorMapping = {
{{#mappedModels}}

View File

@@ -127,7 +127,7 @@ class _${{classname}}Serializer implements PrimitiveSerializer<{{classname}}> {
Type oneOfType;
switch (discValue) {
{{#mappedModels}}
case '{{mappingName}}':
case r'{{mappingName}}':
oneOfResult = serializers.deserialize(
oneOfDataSrc,
specifiedType: FullType({{modelName}}),
@@ -210,7 +210,7 @@ class _${{classname}}Serializer implements PrimitiveSerializer<{{classname}}> {
Type anyOfType;
switch (discValue) {
{{#mappedModels}}
case '{{mappingName}}':
case r'{{mappingName}}':
anyOfResult = serializers.deserialize(anyOfDataSrc, specifiedType: FullType({{modelName}})) as {{modelName}};
anyOfType = {{modelName}};
break;
@@ -271,7 +271,7 @@ class _${{classname}}Serializer implements PrimitiveSerializer<{{classname}}> {
final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
switch (discValue) {
{{#mappedModels}}
case '{{mappingName}}':
case r'{{mappingName}}':
return serializers.deserialize(serialized, specifiedType: FullType({{modelName}})) as {{modelName}};
{{/mappedModels}}
default:

View File

@@ -32,7 +32,7 @@ abstract class Bar implements Entity, Built<Bar, BarBuilder> {
@BuiltValueField(wireName: r'barPropA')
String? get barPropA;
static const String discriminatorFieldName = r'atType';
static const String discriminatorFieldName = r'@type';
Bar._();

View File

@@ -32,7 +32,7 @@ abstract class BarCreate implements Entity, Built<BarCreate, BarCreateBuilder> {
@BuiltValueField(wireName: r'barPropA')
String? get barPropA;
static const String discriminatorFieldName = r'atType';
static const String discriminatorFieldName = r'@type';
BarCreate._();

View File

@@ -19,7 +19,7 @@ part 'bar_ref.g.dart';
/// * [atType] - When sub-classing, this defines the sub-class Extensible name
@BuiltValue()
abstract class BarRef implements EntityRef, Built<BarRef, BarRefBuilder> {
static const String discriminatorFieldName = r'atType';
static const String discriminatorFieldName = r'@type';
BarRef._();

View File

@@ -24,7 +24,7 @@ abstract class BarRefOrValue implements Built<BarRefOrValue, BarRefOrValueBuilde
/// One Of [Bar], [BarRef]
OneOf get oneOf;
static const String discriminatorFieldName = r'atType';
static const String discriminatorFieldName = r'@type';
static const Map<String, Type> discriminatorMapping = {
r'Bar': Bar,
@@ -82,14 +82,14 @@ class _$BarRefOrValueSerializer implements PrimitiveSerializer<BarRefOrValue> {
Object oneOfResult;
Type oneOfType;
switch (discValue) {
case 'Bar':
case r'Bar':
oneOfResult = serializers.deserialize(
oneOfDataSrc,
specifiedType: FullType(Bar),
) as Bar;
oneOfType = Bar;
break;
case 'BarRef':
case r'BarRef':
oneOfResult = serializers.deserialize(
oneOfDataSrc,
specifiedType: FullType(BarRef),

View File

@@ -26,7 +26,7 @@ part 'entity.g.dart';
/// * [atType] - When sub-classing, this defines the sub-class Extensible name
@BuiltValue(instantiable: false)
abstract class Entity implements Addressable, Extensible {
static const String discriminatorFieldName = r'atType';
static const String discriminatorFieldName = r'@type';
static const Map<String, Type> discriminatorMapping = {
r'Bar': Bar,
@@ -125,17 +125,17 @@ class _$EntitySerializer implements PrimitiveSerializer<Entity> {
final discIndex = serializedList.indexOf(Entity.discriminatorFieldName) + 1;
final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
switch (discValue) {
case 'Bar':
case r'Bar':
return serializers.deserialize(serialized, specifiedType: FullType(Bar)) as Bar;
case 'Bar_Create':
case r'Bar_Create':
return serializers.deserialize(serialized, specifiedType: FullType(BarCreate)) as BarCreate;
case 'Foo':
case r'Foo':
return serializers.deserialize(serialized, specifiedType: FullType(Foo)) as Foo;
case 'Pasta':
case r'Pasta':
return serializers.deserialize(serialized, specifiedType: FullType(Pasta)) as Pasta;
case 'Pizza':
case r'Pizza':
return serializers.deserialize(serialized, specifiedType: FullType(Pizza)) as Pizza;
case 'PizzaSpeziale':
case r'PizzaSpeziale':
return serializers.deserialize(serialized, specifiedType: FullType(PizzaSpeziale)) as PizzaSpeziale;
default:
return serializers.deserialize(serialized, specifiedType: FullType($Entity)) as $Entity;

View File

@@ -32,7 +32,7 @@ abstract class EntityRef implements Addressable, Extensible {
@BuiltValueField(wireName: r'name')
String? get name;
static const String discriminatorFieldName = r'atType';
static const String discriminatorFieldName = r'@type';
static const Map<String, Type> discriminatorMapping = {
r'BarRef': BarRef,
@@ -129,9 +129,9 @@ class _$EntityRefSerializer implements PrimitiveSerializer<EntityRef> {
final discIndex = serializedList.indexOf(EntityRef.discriminatorFieldName) + 1;
final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
switch (discValue) {
case 'BarRef':
case r'BarRef':
return serializers.deserialize(serialized, specifiedType: FullType(BarRef)) as BarRef;
case 'FooRef':
case r'FooRef':
return serializers.deserialize(serialized, specifiedType: FullType(FooRef)) as FooRef;
default:
return serializers.deserialize(serialized, specifiedType: FullType($EntityRef)) as $EntityRef;

View File

@@ -27,7 +27,7 @@ abstract class Foo implements Entity, Built<Foo, FooBuilder> {
@BuiltValueField(wireName: r'fooPropB')
String? get fooPropB;
static const String discriminatorFieldName = r'atType';
static const String discriminatorFieldName = r'@type';
Foo._();

View File

@@ -23,7 +23,7 @@ abstract class FooRef implements EntityRef, Built<FooRef, FooRefBuilder> {
@BuiltValueField(wireName: r'foorefPropA')
String? get foorefPropA;
static const String discriminatorFieldName = r'atType';
static const String discriminatorFieldName = r'@type';
FooRef._();

View File

@@ -24,7 +24,7 @@ abstract class FooRefOrValue implements Built<FooRefOrValue, FooRefOrValueBuilde
/// One Of [Foo], [FooRef]
OneOf get oneOf;
static const String discriminatorFieldName = r'atType';
static const String discriminatorFieldName = r'@type';
static const Map<String, Type> discriminatorMapping = {
r'Foo': Foo,
@@ -82,14 +82,14 @@ class _$FooRefOrValueSerializer implements PrimitiveSerializer<FooRefOrValue> {
Object oneOfResult;
Type oneOfType;
switch (discValue) {
case 'Foo':
case r'Foo':
oneOfResult = serializers.deserialize(
oneOfDataSrc,
specifiedType: FullType(Foo),
) as Foo;
oneOfType = Foo;
break;
case 'FooRef':
case r'FooRef':
oneOfResult = serializers.deserialize(
oneOfDataSrc,
specifiedType: FullType(FooRef),

View File

@@ -23,7 +23,7 @@ abstract class Pasta implements Entity, Built<Pasta, PastaBuilder> {
@BuiltValueField(wireName: r'vendor')
String? get vendor;
static const String discriminatorFieldName = r'atType';
static const String discriminatorFieldName = r'@type';
Pasta._();

View File

@@ -24,7 +24,7 @@ abstract class Pizza implements Entity {
@BuiltValueField(wireName: r'pizzaSize')
num? get pizzaSize;
static const String discriminatorFieldName = r'atType';
static const String discriminatorFieldName = r'@type';
static const Map<String, Type> discriminatorMapping = {
r'PizzaSpeziale': PizzaSpeziale,
@@ -110,7 +110,7 @@ class _$PizzaSerializer implements PrimitiveSerializer<Pizza> {
final discIndex = serializedList.indexOf(Pizza.discriminatorFieldName) + 1;
final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
switch (discValue) {
case 'PizzaSpeziale':
case r'PizzaSpeziale':
return serializers.deserialize(serialized, specifiedType: FullType(PizzaSpeziale)) as PizzaSpeziale;
default:
return serializers.deserialize(serialized, specifiedType: FullType($Pizza)) as $Pizza;

View File

@@ -23,7 +23,7 @@ abstract class PizzaSpeziale implements Pizza, Built<PizzaSpeziale, PizzaSpezial
@BuiltValueField(wireName: r'toppings')
String? get toppings;
static const String discriminatorFieldName = r'atType';
static const String discriminatorFieldName = r'@type';
PizzaSpeziale._();

View File

@@ -85,9 +85,9 @@ class _$AnimalSerializer implements PrimitiveSerializer<Animal> {
final discIndex = serializedList.indexOf(Animal.discriminatorFieldName) + 1;
final discValue = serializers.deserialize(serializedList[discIndex], specifiedType: FullType(String)) as String;
switch (discValue) {
case 'Cat':
case r'Cat':
return serializers.deserialize(serialized, specifiedType: FullType(Cat)) as Cat;
case 'Dog':
case r'Dog':
return serializers.deserialize(serialized, specifiedType: FullType(Dog)) as Dog;
default:
return serializers.deserialize(serialized, specifiedType: FullType($Animal)) as $Animal;