From 13f084e7b06c79287299aa14bbfe3e79f5623a18 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Tue, 8 May 2018 20:55:49 +0800 Subject: [PATCH] Fix dataTypeWithEnum for array of form parameters (#354) * fix datatypewithenum for array of form parameters * add test cases to cover dataTypeWithEnum, enumName in Ruby --- .../src/main/java/org/openapitools/codegen/DefaultCodegen.java | 1 + .../org/openapitools/codegen/ruby/RubyClientCodegenTest.java | 2 ++ .../petstore/haskell-http-client/lib/SwaggerPetstore/Model.hs | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java index 688c0389fcc..aa59c7a1f8f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java @@ -4092,6 +4092,7 @@ public class DefaultCodegen implements CodegenConfig { codegenParameter.isListContainer = true; codegenParameter.description = s.getDescription(); codegenParameter.dataType = getTypeDeclaration(s); + codegenParameter.datatypeWithEnum = codegenParameter.dataType.replace(codegenParameter.baseType, codegenParameter.enumName); //TODO fix collectformat for form parameters //collectionFormat = getCollectionFormat(s); // default to csv: diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/ruby/RubyClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/ruby/RubyClientCodegenTest.java index b7e3465b428..6f7bb58ff43 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/ruby/RubyClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/ruby/RubyClientCodegenTest.java @@ -152,6 +152,8 @@ public class RubyClientCodegenTest { Assert.assertEquals(op.formParams.size(), 2); CodegenParameter fp = op.formParams.get(0); Assert.assertEquals(fp.dataType, "Array"); + Assert.assertEquals(fp.datatypeWithEnum, "Array"); + Assert.assertEquals(fp.enumName, "ENUM_FORM_STRING_ARRAY"); } @Test(description = "test example value for body parameter") diff --git a/samples/client/petstore/haskell-http-client/lib/SwaggerPetstore/Model.hs b/samples/client/petstore/haskell-http-client/lib/SwaggerPetstore/Model.hs index d56c9f0fb9c..02d17ad5994 100644 --- a/samples/client/petstore/haskell-http-client/lib/SwaggerPetstore/Model.hs +++ b/samples/client/petstore/haskell-http-client/lib/SwaggerPetstore/Model.hs @@ -92,7 +92,7 @@ newtype Callback = Callback { unCallback :: Text } deriving (P.Eq, P.Show) newtype EnumFormString = EnumFormString { unEnumFormString :: E'EnumFormString } deriving (P.Eq, P.Show) -- ** EnumFormStringArray -newtype EnumFormStringArray = EnumFormStringArray { unEnumFormStringArray :: E'EnumFormStringArray } deriving (P.Eq, P.Show) +newtype EnumFormStringArray = EnumFormStringArray { unEnumFormStringArray :: [E'EnumFormStringArray] } deriving (P.Eq, P.Show) -- ** EnumHeaderString newtype EnumHeaderString = EnumHeaderString { unEnumHeaderString :: E'EnumFormString } deriving (P.Eq, P.Show)