From 86681758793f01a021d0b92db8e14ac67da53351 Mon Sep 17 00:00:00 2001 From: Jim Schubert Date: Thu, 8 Feb 2018 01:43:47 -0500 Subject: [PATCH] [aspnetcore] Fix string enum generation (#7581) * [aspnetcore] Fix enum strings generation regression * [aspnetcore] Regenerate sample --- .../resources/aspnetcore/enumClass.mustache | 15 +++-- .../aspnetcore/.swagger-codegen/VERSION | 2 +- .../src/IO.Swagger/Controllers/PetApi.cs | 8 +-- .../src/IO.Swagger/Controllers/StoreApi.cs | 4 +- .../src/IO.Swagger/Controllers/UserApi.cs | 2 +- .../aspnetcore/src/IO.Swagger/Models/Order.cs | 11 ++-- .../aspnetcore/src/IO.Swagger/Models/Pet.cs | 11 ++-- .../IO.Swagger/wwwroot/swagger-original.json | 62 +++++++++---------- 8 files changed, 63 insertions(+), 52 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/enumClass.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/enumClass.mustache index ce4e3054ea3..a8a68b99844 100644 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/enumClass.mustache +++ b/modules/swagger-codegen/src/main/resources/aspnetcore/enumClass.mustache @@ -1,13 +1,18 @@ + /// /// {{^description}}Gets or Sets {{{name}}}{{/description}}{{#description}}{{{description}}}{{/description}} - /// {{#description}} - /// {{{description}}}{{/description}} + /// + {{#description}} + /// {{{description}}} + {{/description}} + {{#allowableValues}}{{#enumVars}}{{#-first}}{{#isString}}[JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]{{/isString}}{{/-first}}{{/enumVars}}{{/allowableValues}} public enum {{#datatypeWithEnum}}{{.}}{{/datatypeWithEnum}}{{^datatypeWithEnum}}{{classname}}{{/datatypeWithEnum}} - { {{#allowableValues}}{{#enumVars}} + { + {{#allowableValues}}{{#enumVars}} /// /// Enum {{name}} for {{{value}}} /// - [EnumMember(Value = {{#isLong}}"{{/isLong}}{{#isInteger}}"{{/isInteger}}{{#isFloat}}"{{/isFloat}}{{#isDouble}}"{{/isDouble}}{{{value}}}{{#isLong}}"{{/isLong}}{{#isInteger}}"{{/isInteger}}{{#isDouble}}"{{/isDouble}}{{#isFloat}}"{{/isFloat}})] - {{name}}{{#isLong}} = {{{value}}}{{/isLong}}{{#isInteger}} = {{{value}}}{{/isInteger}}{{^isInteger}} = {{-index}}{{/isInteger}}{{^-last}}, + {{#isString}}[EnumMember(Value = "{{{value}}}")]{{/isString}} + {{name}}{{^isString}} = {{{value}}}{{/isString}}{{#isString}} = {{-index}}{{/isString}}{{^-last}}, {{/-last}}{{/enumVars}}{{/allowableValues}} } diff --git a/samples/server/petstore/aspnetcore/.swagger-codegen/VERSION b/samples/server/petstore/aspnetcore/.swagger-codegen/VERSION index f9f7450d135..855ff9501eb 100644 --- a/samples/server/petstore/aspnetcore/.swagger-codegen/VERSION +++ b/samples/server/petstore/aspnetcore/.swagger-codegen/VERSION @@ -1 +1 @@ -2.3.0-SNAPSHOT \ No newline at end of file +2.4.0-SNAPSHOT \ No newline at end of file diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/PetApi.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/PetApi.cs index 918c99987ca..88dfc690ef1 100644 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/PetApi.cs +++ b/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/PetApi.cs @@ -92,7 +92,7 @@ namespace IO.Swagger.Controllers string exampleJson = null; exampleJson = "\n 123456789\n doggie\n \n aeiou\n \n \n \n aeiou\n"; - exampleJson = "[ {\n \"tags\" : [ {\n \"id\" : 1,\n \"name\" : \"name\"\n }, {\n \"id\" : 1,\n \"name\" : \"name\"\n } ],\n \"id\" : 0,\n \"category\" : {\n \"id\" : 6,\n \"name\" : \"name\"\n },\n \"status\" : \"available\",\n \"name\" : \"doggie\",\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ]\n}, {\n \"tags\" : [ {\n \"id\" : 1,\n \"name\" : \"name\"\n }, {\n \"id\" : 1,\n \"name\" : \"name\"\n } ],\n \"id\" : 0,\n \"category\" : {\n \"id\" : 6,\n \"name\" : \"name\"\n },\n \"status\" : \"available\",\n \"name\" : \"doggie\",\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ]\n} ]"; + exampleJson = "[ {\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n}, {\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n} ]"; var example = exampleJson != null ? JsonConvert.DeserializeObject>(exampleJson) @@ -123,7 +123,7 @@ namespace IO.Swagger.Controllers string exampleJson = null; exampleJson = "\n 123456789\n doggie\n \n aeiou\n \n \n \n aeiou\n"; - exampleJson = "[ {\n \"tags\" : [ {\n \"id\" : 1,\n \"name\" : \"name\"\n }, {\n \"id\" : 1,\n \"name\" : \"name\"\n } ],\n \"id\" : 0,\n \"category\" : {\n \"id\" : 6,\n \"name\" : \"name\"\n },\n \"status\" : \"available\",\n \"name\" : \"doggie\",\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ]\n}, {\n \"tags\" : [ {\n \"id\" : 1,\n \"name\" : \"name\"\n }, {\n \"id\" : 1,\n \"name\" : \"name\"\n } ],\n \"id\" : 0,\n \"category\" : {\n \"id\" : 6,\n \"name\" : \"name\"\n },\n \"status\" : \"available\",\n \"name\" : \"doggie\",\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ]\n} ]"; + exampleJson = "[ {\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n}, {\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n} ]"; var example = exampleJson != null ? JsonConvert.DeserializeObject>(exampleJson) @@ -158,7 +158,7 @@ namespace IO.Swagger.Controllers string exampleJson = null; exampleJson = "\n 123456789\n doggie\n \n aeiou\n \n \n \n aeiou\n"; - exampleJson = "{\n \"tags\" : [ {\n \"id\" : 1,\n \"name\" : \"name\"\n }, {\n \"id\" : 1,\n \"name\" : \"name\"\n } ],\n \"id\" : 0,\n \"category\" : {\n \"id\" : 6,\n \"name\" : \"name\"\n },\n \"status\" : \"available\",\n \"name\" : \"doggie\",\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ]\n}"; + exampleJson = "{\n \"photoUrls\" : [ \"photoUrls\", \"photoUrls\" ],\n \"name\" : \"doggie\",\n \"id\" : 0,\n \"category\" : {\n \"name\" : \"name\",\n \"id\" : 6\n },\n \"tags\" : [ {\n \"name\" : \"name\",\n \"id\" : 1\n }, {\n \"name\" : \"name\",\n \"id\" : 1\n } ],\n \"status\" : \"available\"\n}"; var example = exampleJson != null ? JsonConvert.DeserializeObject(exampleJson) @@ -234,7 +234,7 @@ namespace IO.Swagger.Controllers // return StatusCode(200, default(ApiResponse)); string exampleJson = null; - exampleJson = "{\n \"message\" : \"message\",\n \"code\" : 0,\n \"type\" : \"type\"\n}"; + exampleJson = "{\n \"code\" : 0,\n \"type\" : \"type\",\n \"message\" : \"message\"\n}"; var example = exampleJson != null ? JsonConvert.DeserializeObject(exampleJson) diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/StoreApi.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/StoreApi.cs index 178f7397c5c..d2ee6867e7f 100644 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/StoreApi.cs +++ b/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/StoreApi.cs @@ -105,7 +105,7 @@ namespace IO.Swagger.Controllers string exampleJson = null; exampleJson = "\n 123456789\n 123456789\n 123\n 2000-01-23T04:56:07.000Z\n aeiou\n true\n"; - exampleJson = "{\n \"id\" : 0,\n \"petId\" : 6,\n \"complete\" : false,\n \"status\" : \"placed\",\n \"quantity\" : 1,\n \"shipDate\" : \"2000-01-23T04:56:07.000+00:00\"\n}"; + exampleJson = "{\n \"petId\" : 6,\n \"quantity\" : 1,\n \"id\" : 0,\n \"shipDate\" : \"2000-01-23T04:56:07.000+00:00\",\n \"complete\" : false,\n \"status\" : \"placed\"\n}"; var example = exampleJson != null ? JsonConvert.DeserializeObject(exampleJson) @@ -136,7 +136,7 @@ namespace IO.Swagger.Controllers string exampleJson = null; exampleJson = "\n 123456789\n 123456789\n 123\n 2000-01-23T04:56:07.000Z\n aeiou\n true\n"; - exampleJson = "{\n \"id\" : 0,\n \"petId\" : 6,\n \"complete\" : false,\n \"status\" : \"placed\",\n \"quantity\" : 1,\n \"shipDate\" : \"2000-01-23T04:56:07.000+00:00\"\n}"; + exampleJson = "{\n \"petId\" : 6,\n \"quantity\" : 1,\n \"id\" : 0,\n \"shipDate\" : \"2000-01-23T04:56:07.000+00:00\",\n \"complete\" : false,\n \"status\" : \"placed\"\n}"; var example = exampleJson != null ? JsonConvert.DeserializeObject(exampleJson) diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/UserApi.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/UserApi.cs index 0b3d4dc374f..5a616057f9c 100644 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/UserApi.cs +++ b/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/UserApi.cs @@ -137,7 +137,7 @@ namespace IO.Swagger.Controllers string exampleJson = null; exampleJson = "\n 123456789\n aeiou\n aeiou\n aeiou\n aeiou\n aeiou\n aeiou\n 123\n"; - exampleJson = "{\n \"id\" : 0,\n \"lastName\" : \"lastName\",\n \"phone\" : \"phone\",\n \"username\" : \"username\",\n \"email\" : \"email\",\n \"userStatus\" : 6,\n \"firstName\" : \"firstName\",\n \"password\" : \"password\"\n}"; + exampleJson = "{\n \"firstName\" : \"firstName\",\n \"lastName\" : \"lastName\",\n \"password\" : \"password\",\n \"userStatus\" : 6,\n \"phone\" : \"phone\",\n \"id\" : 0,\n \"email\" : \"email\",\n \"username\" : \"username\"\n}"; var example = exampleJson != null ? JsonConvert.DeserializeObject(exampleJson) diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Order.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Order.cs index 1ce1b448c8c..1e617fdf089 100644 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Order.cs +++ b/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Order.cs @@ -50,26 +50,29 @@ namespace IO.Swagger.Models /// [DataMember(Name="shipDate")] public DateTime? ShipDate { get; set; } + /// /// Order Status /// /// Order Status + [JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] public enum StatusEnum - { + { + /// - /// Enum PlacedEnum for "placed" + /// Enum PlacedEnum for placed /// [EnumMember(Value = "placed")] PlacedEnum = 1, /// - /// Enum ApprovedEnum for "approved" + /// Enum ApprovedEnum for approved /// [EnumMember(Value = "approved")] ApprovedEnum = 2, /// - /// Enum DeliveredEnum for "delivered" + /// Enum DeliveredEnum for delivered /// [EnumMember(Value = "delivered")] DeliveredEnum = 3 diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Pet.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Pet.cs index 329a0986435..fc9884836f0 100644 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Pet.cs +++ b/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Pet.cs @@ -58,26 +58,29 @@ namespace IO.Swagger.Models /// [DataMember(Name="tags")] public List Tags { get; set; } + /// /// pet status in the store /// /// pet status in the store + [JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))] public enum StatusEnum - { + { + /// - /// Enum AvailableEnum for "available" + /// Enum AvailableEnum for available /// [EnumMember(Value = "available")] AvailableEnum = 1, /// - /// Enum PendingEnum for "pending" + /// Enum PendingEnum for pending /// [EnumMember(Value = "pending")] PendingEnum = 2, /// - /// Enum SoldEnum for "sold" + /// Enum SoldEnum for sold /// [EnumMember(Value = "sold")] SoldEnum = 3 diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/wwwroot/swagger-original.json b/samples/server/petstore/aspnetcore/src/IO.Swagger/wwwroot/swagger-original.json index 6bbf519db95..723ce2eb47a 100644 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/wwwroot/swagger-original.json +++ b/samples/server/petstore/aspnetcore/src/IO.Swagger/wwwroot/swagger-original.json @@ -108,8 +108,8 @@ "type" : "array", "items" : { "type" : "string", - "enum" : [ "available", "pending", "sold" ], - "default" : "available" + "default" : "available", + "enum" : [ "available", "pending", "sold" ] }, "collectionFormat" : "csv" } ], @@ -685,12 +685,12 @@ "title" : "Pet Order", "description" : "An order for a pets from the pet store", "example" : { - "id" : 0, "petId" : 6, - "complete" : false, - "status" : "placed", "quantity" : 1, - "shipDate" : "2000-01-23T04:56:07.000+00:00" + "id" : 0, + "shipDate" : "2000-01-23T04:56:07.000+00:00", + "complete" : false, + "status" : "placed" }, "xml" : { "name" : "Order" @@ -710,8 +710,8 @@ "title" : "Pet category", "description" : "A category for a pet", "example" : { - "id" : 6, - "name" : "name" + "name" : "name", + "id" : 6 }, "xml" : { "name" : "Category" @@ -751,14 +751,14 @@ "title" : "a User", "description" : "A User who is purchasing from the pet store", "example" : { - "id" : 0, - "lastName" : "lastName", - "phone" : "phone", - "username" : "username", - "email" : "email", - "userStatus" : 6, "firstName" : "firstName", - "password" : "password" + "lastName" : "lastName", + "password" : "password", + "userStatus" : 6, + "phone" : "phone", + "id" : 0, + "email" : "email", + "username" : "username" }, "xml" : { "name" : "User" @@ -778,8 +778,8 @@ "title" : "Pet Tag", "description" : "A tag for a pet", "example" : { - "id" : 1, - "name" : "name" + "name" : "name", + "id" : 1 }, "xml" : { "name" : "Tag" @@ -829,21 +829,21 @@ "title" : "a Pet", "description" : "A pet for sale in the pet store", "example" : { - "tags" : [ { - "id" : 1, - "name" : "name" - }, { - "id" : 1, - "name" : "name" - } ], + "photoUrls" : [ "photoUrls", "photoUrls" ], + "name" : "doggie", "id" : 0, "category" : { - "id" : 6, - "name" : "name" + "name" : "name", + "id" : 6 }, - "status" : "available", - "name" : "doggie", - "photoUrls" : [ "photoUrls", "photoUrls" ] + "tags" : [ { + "name" : "name", + "id" : 1 + }, { + "name" : "name", + "id" : 1 + } ], + "status" : "available" }, "xml" : { "name" : "Pet" @@ -866,9 +866,9 @@ "title" : "An uploaded response", "description" : "Describes the result of uploading an image resource", "example" : { - "message" : "message", "code" : 0, - "type" : "type" + "type" : "type", + "message" : "message" } } },