From e669af893f0e78bdeb5714a0f8a3345f29ff82c3 Mon Sep 17 00:00:00 2001 From: pmcgleenon Date: Thu, 11 Feb 2021 15:24:26 +0000 Subject: [PATCH 1/2] [REQ] Added enumClassPrefix option to go-gin-server. Used same approach as #7008 (go-server) modified: docs/generators/go-gin-server.md modified: modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoGinServerCodegen.java modified: modules/openapi-generator/src/main/resources/go-gin-server/model.mustache --- docs/generators/go-gin-server.md | 1 + .../codegen/languages/GoGinServerCodegen.java | 9 +++++++++ .../src/main/resources/go-gin-server/model.mustache | 6 +++--- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/docs/generators/go-gin-server.md b/docs/generators/go-gin-server.md index 85e24728f1e9..e5f6b0458df6 100644 --- a/docs/generators/go-gin-server.md +++ b/docs/generators/go-gin-server.md @@ -12,6 +12,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl |packageName|Go package name (convention: lowercase).| |openapi| |packageVersion|Go package version.| |1.0.0| |serverPort|The network port the generated server binds to| |8080| +|enumClassPrefix|Prefix enum with class name| |false| ## IMPORT MAPPING diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoGinServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoGinServerCodegen.java index 404d1c06a019..c6b56766857f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoGinServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/GoGinServerCodegen.java @@ -116,6 +116,8 @@ public GoGinServerCodegen() { optServerPort.setType("int"); optServerPort.defaultValue(Integer.toString(serverPort)); cliOptions.add(optServerPort); + + cliOptions.add(CliOption.newBoolean(CodegenConstants.ENUM_CLASS_PREFIX, CodegenConstants.ENUM_CLASS_PREFIX_DESC)); } @Override @@ -165,6 +167,13 @@ public void processOpts() { additionalProperties.put("apiPath", apiPath); } + if (additionalProperties.containsKey(CodegenConstants.ENUM_CLASS_PREFIX)) { + setEnumClassPrefix(Boolean.parseBoolean(additionalProperties.get(CodegenConstants.ENUM_CLASS_PREFIX).toString())); + if (enumClassPrefix) { + additionalProperties.put(CodegenConstants.ENUM_CLASS_PREFIX, true); + } + } + modelPackage = packageName; apiPackage = packageName; diff --git a/modules/openapi-generator/src/main/resources/go-gin-server/model.mustache b/modules/openapi-generator/src/main/resources/go-gin-server/model.mustache index b6ae9ba9f349..2f67ffafc3b8 100644 --- a/modules/openapi-generator/src/main/resources/go-gin-server/model.mustache +++ b/modules/openapi-generator/src/main/resources/go-gin-server/model.mustache @@ -5,13 +5,13 @@ package {{packageName}} {{/-first}} "{{import}}"{{#-last}} ) {{/-last}}{{/imports}}{{#model}}{{#isEnum}}{{#description}}// {{{classname}}} : {{{description}}}{{/description}} -type {{{name}}} {{^format}}{{dataType}}{{/format}}{{#format}}{{{format}}}{{/format}} +type {{{classname}}} {{^format}}{{dataType}}{{/format}}{{#format}}{{{format}}}{{/format}} -// List of {{{name}}} +// List of {{{classname}}} const ( {{#allowableValues}} {{#enumVars}} - {{name}} {{{classname}}} = {{{value}}} + {{#enumClassPrefix}}{{{classname.toUpperCase}}}_{{/enumClassPrefix}}{{name}} {{{classname}}} = {{{value}}} {{/enumVars}} {{/allowableValues}} ){{/isEnum}}{{^isEnum}}{{#description}} From abf419f657262f38fdbf19f564791d5f995ac99e Mon Sep 17 00:00:00 2001 From: pmcgleenon Date: Thu, 11 Feb 2021 20:43:37 +0000 Subject: [PATCH 2/2] Fixed CI error in docs --- docs/generators/go-gin-server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/generators/go-gin-server.md b/docs/generators/go-gin-server.md index e5f6b0458df6..0c1d324191de 100644 --- a/docs/generators/go-gin-server.md +++ b/docs/generators/go-gin-server.md @@ -8,11 +8,11 @@ These options may be applied as additional-properties (cli) or configOptions (pl | Option | Description | Values | Default | | ------ | ----------- | ------ | ------- | |apiPath|Name of the folder that contains the Go source code| |go| +|enumClassPrefix|Prefix enum with class name| |false| |hideGenerationTimestamp|Hides the generation timestamp when files are generated.| |true| |packageName|Go package name (convention: lowercase).| |openapi| |packageVersion|Go package version.| |1.0.0| |serverPort|The network port the generated server binds to| |8080| -|enumClassPrefix|Prefix enum with class name| |false| ## IMPORT MAPPING