forked from loafle/openapi-generator-original
manage enum properly on jaguar generator (#3654)
This commit is contained in:
parent
ceccb4f83a
commit
f4d3df762a
@ -19,7 +19,7 @@ import 'package:jaguar_mimetype/jaguar_mimetype.dart';
|
|||||||
|
|
||||||
{{#jsonFormat}}
|
{{#jsonFormat}}
|
||||||
final _jsonJaguarRepo = JsonRepo()
|
final _jsonJaguarRepo = JsonRepo()
|
||||||
{{#models}}{{#model}}..add({{classname}}Serializer())
|
{{#models}}{{#model}}{{^isEnum}}..add({{classname}}Serializer()){{/isEnum}}
|
||||||
{{/model}}{{/models}};
|
{{/model}}{{/models}};
|
||||||
final Map<String, CodecRepo> defaultConverters = {
|
final Map<String, CodecRepo> defaultConverters = {
|
||||||
MimeTypes.json: _jsonJaguarRepo,
|
MimeTypes.json: _jsonJaguarRepo,
|
||||||
|
@ -10,7 +10,12 @@ part '{{classFilename}}.jser.dart';
|
|||||||
|
|
||||||
class {{classname}} {
|
class {{classname}} {
|
||||||
{{#vars}}{{#description}} /* {{{description}}} */{{/description}}
|
{{#vars}}{{#description}} /* {{{description}}} */{{/description}}
|
||||||
@Alias('{{{baseName}}}', isNullable:{{#isNullable}} true{{/isNullable}}{{^isNullable}} false{{/isNullable}})
|
@Alias('{{{baseName}}}', isNullable:{{#isNullable}} true{{/isNullable}}{{^isNullable}} false{{/isNullable}},{{#allowableValues}}
|
||||||
|
{{^enumVars.empty}}{{^isString}}{{! isString because inline enums are not handled for now }}
|
||||||
|
processor: const {{{datatype}}}FieldProcessor(),
|
||||||
|
{{/isString}}{{/enumVars.empty}}
|
||||||
|
{{/allowableValues}}
|
||||||
|
)
|
||||||
final {{{datatype}}} {{name}};
|
final {{{datatype}}} {{name}};
|
||||||
{{#allowableValues}}{{#min}} // range from {{min}} to {{max}}{{/min}}//{{^min}}enum {{name}}Enum { {{#values}} {{.}}, {{/values}} };{{/min}}{{/allowableValues}}{{/vars}}
|
{{#allowableValues}}{{#min}} // range from {{min}} to {{max}}{{/min}}//{{^min}}enum {{name}}Enum { {{#values}} {{.}}, {{/values}} };{{/min}}{{/allowableValues}}{{/vars}}
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
part '{{classFilename}}.jser.dart';
|
|
||||||
|
|
||||||
@Entity()
|
{{#jsonFormat}}
|
||||||
class {{classname}} {
|
class {{classname}} {
|
||||||
/// The underlying value of this enum member.
|
/// The underlying value of this enum member.
|
||||||
final {{dataType}} value;
|
final {{dataType}} value;
|
||||||
@ -12,27 +11,27 @@ class {{classname}} {
|
|||||||
{{#description}}
|
{{#description}}
|
||||||
/// {{description}}
|
/// {{description}}
|
||||||
{{/description}}
|
{{/description}}
|
||||||
static const {{classname}} {{{name}}}} = const {{classname}}._internal({{{value}}});
|
static const {{classname}} {{{name}}} = const {{classname}}._internal({{{value}}});
|
||||||
{{/enumVars}}
|
{{/enumVars}}
|
||||||
{{/allowableValues}}
|
{{/allowableValues}}
|
||||||
}
|
}
|
||||||
|
|
||||||
class {{classname}}TypeTransformer extends TypeTransformer<{{classname}}> {
|
class {{classname}}FieldProcessor implements FieldProcessor<{{classname}}, {{dataType}}> {
|
||||||
|
const {{classname}}FieldProcessor();
|
||||||
|
|
||||||
@override
|
{{classname}} deserialize({{dataType}} data) {
|
||||||
dynamic encode({{classname}} data) {
|
|
||||||
return data.value;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
{{classname}} decode(dynamic data) {
|
|
||||||
switch (data) {
|
switch (data) {
|
||||||
{{#allowableValues}}
|
{{#allowableValues}}
|
||||||
{{#enumVars}}
|
{{#enumVars}}
|
||||||
case {{{value}}}: return {{classname}}.{{{name}}}};
|
case {{{value}}}: return {{classname}}.{{{name}}};
|
||||||
{{/enumVars}}
|
{{/enumVars}}
|
||||||
{{/allowableValues}}
|
{{/allowableValues}}
|
||||||
default: throw('Unknown enum value to decode: $data');
|
default: throw('Unknown enum value to decode: $data');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{{dataType}} serialize({{classname}} item) {
|
||||||
|
return item.value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
{{/jsonFormat}}
|
||||||
|
@ -5,13 +5,13 @@ part 'api_response.jser.dart';
|
|||||||
|
|
||||||
class ApiResponse {
|
class ApiResponse {
|
||||||
|
|
||||||
@Alias('code', isNullable: false)
|
@Alias('code', isNullable: false, )
|
||||||
final int code;
|
final int code;
|
||||||
|
|
||||||
@Alias('type', isNullable: false)
|
@Alias('type', isNullable: false, )
|
||||||
final String type;
|
final String type;
|
||||||
|
|
||||||
@Alias('message', isNullable: false)
|
@Alias('message', isNullable: false, )
|
||||||
final String message;
|
final String message;
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,10 +5,10 @@ part 'category.jser.dart';
|
|||||||
|
|
||||||
class Category {
|
class Category {
|
||||||
|
|
||||||
@Alias('id', isNullable: false)
|
@Alias('id', isNullable: false, )
|
||||||
final int id;
|
final int id;
|
||||||
|
|
||||||
@Alias('name', isNullable: false)
|
@Alias('name', isNullable: false, )
|
||||||
final String name;
|
final String name;
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,22 +5,24 @@ part 'order.jser.dart';
|
|||||||
|
|
||||||
class Order {
|
class Order {
|
||||||
|
|
||||||
@Alias('id', isNullable: false)
|
@Alias('id', isNullable: false, )
|
||||||
final int id;
|
final int id;
|
||||||
|
|
||||||
@Alias('petId', isNullable: false)
|
@Alias('petId', isNullable: false, )
|
||||||
final int petId;
|
final int petId;
|
||||||
|
|
||||||
@Alias('quantity', isNullable: false)
|
@Alias('quantity', isNullable: false, )
|
||||||
final int quantity;
|
final int quantity;
|
||||||
|
|
||||||
@Alias('shipDate', isNullable: false)
|
@Alias('shipDate', isNullable: false, )
|
||||||
final DateTime shipDate;
|
final DateTime shipDate;
|
||||||
/* Order Status */
|
/* Order Status */
|
||||||
@Alias('status', isNullable: false)
|
@Alias('status', isNullable: false,
|
||||||
|
processor: const StringFieldProcessor(),
|
||||||
|
)
|
||||||
final String status;
|
final String status;
|
||||||
//enum statusEnum { placed, approved, delivered, };
|
//enum statusEnum { placed, approved, delivered, };
|
||||||
@Alias('complete', isNullable: false)
|
@Alias('complete', isNullable: false, )
|
||||||
final bool complete;
|
final bool complete;
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,22 +9,24 @@ part 'pet.jser.dart';
|
|||||||
|
|
||||||
class Pet {
|
class Pet {
|
||||||
|
|
||||||
@Alias('id', isNullable: false)
|
@Alias('id', isNullable: false, )
|
||||||
final int id;
|
final int id;
|
||||||
|
|
||||||
@Alias('category', isNullable: false)
|
@Alias('category', isNullable: false, )
|
||||||
final Category category;
|
final Category category;
|
||||||
|
|
||||||
@Alias('name', isNullable: false)
|
@Alias('name', isNullable: false, )
|
||||||
final String name;
|
final String name;
|
||||||
|
|
||||||
@Alias('photoUrls', isNullable: false)
|
@Alias('photoUrls', isNullable: false, )
|
||||||
final List<String> photoUrls;
|
final List<String> photoUrls;
|
||||||
|
|
||||||
@Alias('tags', isNullable: false)
|
@Alias('tags', isNullable: false, )
|
||||||
final List<Tag> tags;
|
final List<Tag> tags;
|
||||||
/* pet status in the store */
|
/* pet status in the store */
|
||||||
@Alias('status', isNullable: false)
|
@Alias('status', isNullable: false,
|
||||||
|
processor: const StringFieldProcessor(),
|
||||||
|
)
|
||||||
final String status;
|
final String status;
|
||||||
//enum statusEnum { available, pending, sold, };
|
//enum statusEnum { available, pending, sold, };
|
||||||
|
|
||||||
|
@ -5,10 +5,10 @@ part 'tag.jser.dart';
|
|||||||
|
|
||||||
class Tag {
|
class Tag {
|
||||||
|
|
||||||
@Alias('id', isNullable: false)
|
@Alias('id', isNullable: false, )
|
||||||
final int id;
|
final int id;
|
||||||
|
|
||||||
@Alias('name', isNullable: false)
|
@Alias('name', isNullable: false, )
|
||||||
final String name;
|
final String name;
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,28 +5,28 @@ part 'user.jser.dart';
|
|||||||
|
|
||||||
class User {
|
class User {
|
||||||
|
|
||||||
@Alias('id', isNullable: false)
|
@Alias('id', isNullable: false, )
|
||||||
final int id;
|
final int id;
|
||||||
|
|
||||||
@Alias('username', isNullable: false)
|
@Alias('username', isNullable: false, )
|
||||||
final String username;
|
final String username;
|
||||||
|
|
||||||
@Alias('firstName', isNullable: false)
|
@Alias('firstName', isNullable: false, )
|
||||||
final String firstName;
|
final String firstName;
|
||||||
|
|
||||||
@Alias('lastName', isNullable: false)
|
@Alias('lastName', isNullable: false, )
|
||||||
final String lastName;
|
final String lastName;
|
||||||
|
|
||||||
@Alias('email', isNullable: false)
|
@Alias('email', isNullable: false, )
|
||||||
final String email;
|
final String email;
|
||||||
|
|
||||||
@Alias('password', isNullable: false)
|
@Alias('password', isNullable: false, )
|
||||||
final String password;
|
final String password;
|
||||||
|
|
||||||
@Alias('phone', isNullable: false)
|
@Alias('phone', isNullable: false, )
|
||||||
final String phone;
|
final String phone;
|
||||||
/* User Status */
|
/* User Status */
|
||||||
@Alias('userStatus', isNullable: false)
|
@Alias('userStatus', isNullable: false, )
|
||||||
final int userStatus;
|
final int userStatus;
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,13 +5,13 @@ part 'api_response.jser.dart';
|
|||||||
|
|
||||||
class ApiResponse {
|
class ApiResponse {
|
||||||
|
|
||||||
@Alias('code', isNullable: false)
|
@Alias('code', isNullable: false, )
|
||||||
final int code;
|
final int code;
|
||||||
|
|
||||||
@Alias('type', isNullable: false)
|
@Alias('type', isNullable: false, )
|
||||||
final String type;
|
final String type;
|
||||||
|
|
||||||
@Alias('message', isNullable: false)
|
@Alias('message', isNullable: false, )
|
||||||
final String message;
|
final String message;
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,10 +5,10 @@ part 'category.jser.dart';
|
|||||||
|
|
||||||
class Category {
|
class Category {
|
||||||
|
|
||||||
@Alias('id', isNullable: false)
|
@Alias('id', isNullable: false, )
|
||||||
final int id;
|
final int id;
|
||||||
|
|
||||||
@Alias('name', isNullable: false)
|
@Alias('name', isNullable: false, )
|
||||||
final String name;
|
final String name;
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,22 +5,24 @@ part 'order.jser.dart';
|
|||||||
|
|
||||||
class Order {
|
class Order {
|
||||||
|
|
||||||
@Alias('id', isNullable: false)
|
@Alias('id', isNullable: false, )
|
||||||
final int id;
|
final int id;
|
||||||
|
|
||||||
@Alias('petId', isNullable: false)
|
@Alias('petId', isNullable: false, )
|
||||||
final int petId;
|
final int petId;
|
||||||
|
|
||||||
@Alias('quantity', isNullable: false)
|
@Alias('quantity', isNullable: false, )
|
||||||
final int quantity;
|
final int quantity;
|
||||||
|
|
||||||
@Alias('shipDate', isNullable: false)
|
@Alias('shipDate', isNullable: false, )
|
||||||
final DateTime shipDate;
|
final DateTime shipDate;
|
||||||
/* Order Status */
|
/* Order Status */
|
||||||
@Alias('status', isNullable: false)
|
@Alias('status', isNullable: false,
|
||||||
|
|
||||||
|
)
|
||||||
final String status;
|
final String status;
|
||||||
//enum statusEnum { placed, approved, delivered, };
|
//enum statusEnum { placed, approved, delivered, };
|
||||||
@Alias('complete', isNullable: false)
|
@Alias('complete', isNullable: false, )
|
||||||
final bool complete;
|
final bool complete;
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,22 +9,24 @@ part 'pet.jser.dart';
|
|||||||
|
|
||||||
class Pet {
|
class Pet {
|
||||||
|
|
||||||
@Alias('id', isNullable: false)
|
@Alias('id', isNullable: false, )
|
||||||
final int id;
|
final int id;
|
||||||
|
|
||||||
@Alias('category', isNullable: false)
|
@Alias('category', isNullable: false, )
|
||||||
final Category category;
|
final Category category;
|
||||||
|
|
||||||
@Alias('name', isNullable: false)
|
@Alias('name', isNullable: false, )
|
||||||
final String name;
|
final String name;
|
||||||
|
|
||||||
@Alias('photoUrls', isNullable: false)
|
@Alias('photoUrls', isNullable: false, )
|
||||||
final List<String> photoUrls;
|
final List<String> photoUrls;
|
||||||
|
|
||||||
@Alias('tags', isNullable: false)
|
@Alias('tags', isNullable: false, )
|
||||||
final List<Tag> tags;
|
final List<Tag> tags;
|
||||||
/* pet status in the store */
|
/* pet status in the store */
|
||||||
@Alias('status', isNullable: false)
|
@Alias('status', isNullable: false,
|
||||||
|
|
||||||
|
)
|
||||||
final String status;
|
final String status;
|
||||||
//enum statusEnum { available, pending, sold, };
|
//enum statusEnum { available, pending, sold, };
|
||||||
|
|
||||||
|
@ -5,10 +5,10 @@ part 'tag.jser.dart';
|
|||||||
|
|
||||||
class Tag {
|
class Tag {
|
||||||
|
|
||||||
@Alias('id', isNullable: false)
|
@Alias('id', isNullable: false, )
|
||||||
final int id;
|
final int id;
|
||||||
|
|
||||||
@Alias('name', isNullable: false)
|
@Alias('name', isNullable: false, )
|
||||||
final String name;
|
final String name;
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,28 +5,28 @@ part 'user.jser.dart';
|
|||||||
|
|
||||||
class User {
|
class User {
|
||||||
|
|
||||||
@Alias('id', isNullable: false)
|
@Alias('id', isNullable: false, )
|
||||||
final int id;
|
final int id;
|
||||||
|
|
||||||
@Alias('username', isNullable: false)
|
@Alias('username', isNullable: false, )
|
||||||
final String username;
|
final String username;
|
||||||
|
|
||||||
@Alias('firstName', isNullable: false)
|
@Alias('firstName', isNullable: false, )
|
||||||
final String firstName;
|
final String firstName;
|
||||||
|
|
||||||
@Alias('lastName', isNullable: false)
|
@Alias('lastName', isNullable: false, )
|
||||||
final String lastName;
|
final String lastName;
|
||||||
|
|
||||||
@Alias('email', isNullable: false)
|
@Alias('email', isNullable: false, )
|
||||||
final String email;
|
final String email;
|
||||||
|
|
||||||
@Alias('password', isNullable: false)
|
@Alias('password', isNullable: false, )
|
||||||
final String password;
|
final String password;
|
||||||
|
|
||||||
@Alias('phone', isNullable: false)
|
@Alias('phone', isNullable: false, )
|
||||||
final String phone;
|
final String phone;
|
||||||
/* User Status */
|
/* User Status */
|
||||||
@Alias('userStatus', isNullable: false)
|
@Alias('userStatus', isNullable: false, )
|
||||||
final int userStatus;
|
final int userStatus;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user