From c595a02b615e7665fc4be4c11e30ba4aee7be695 Mon Sep 17 00:00:00 2001 From: Tanmay Mohapatra Date: Wed, 12 Jul 2023 16:34:30 +0530 Subject: [PATCH] [Julia] Fix error in server enum generation (#16079) Fixed issue in enum generation for julia-server code. An empty struct was generated, where it should have generated a type alias. --- .../src/main/resources/julia-server/model.mustache | 11 +++++------ .../julia-server/partial_model_alias.mustache | 5 +++++ .../julia-server/partial_model_anyof.mustache | 4 ++-- .../julia-server/partial_model_oneof.mustache | 4 ++-- .../julia-server/partial_model_single.mustache | 6 +++--- .../petstore/julia/src/models/model_ApiResponse.jl | 3 ++- .../petstore/julia/src/models/model_Category.jl | 3 ++- .../server/petstore/julia/src/models/model_Order.jl | 3 ++- samples/server/petstore/julia/src/models/model_Pet.jl | 3 ++- samples/server/petstore/julia/src/models/model_Tag.jl | 3 ++- .../server/petstore/julia/src/models/model_User.jl | 3 ++- 11 files changed, 29 insertions(+), 19 deletions(-) create mode 100644 modules/openapi-generator/src/main/resources/julia-server/partial_model_alias.mustache diff --git a/modules/openapi-generator/src/main/resources/julia-server/model.mustache b/modules/openapi-generator/src/main/resources/julia-server/model.mustache index 35b6dc64d2d..a6165354e58 100644 --- a/modules/openapi-generator/src/main/resources/julia-server/model.mustache +++ b/modules/openapi-generator/src/main/resources/julia-server/model.mustache @@ -2,15 +2,14 @@ {{#models}} {{#model}} {{#isAlias}} -if !isdefined(@__MODULE__, :{{classname}}) - const {{classname}} = {{dataType}} -else - @warn("Skipping redefinition of {{classname}} to {{dataType}}") -end +{{>partial_model_alias}} {{/isAlias}}{{^isAlias}}{{#oneOf}}{{#-first}} {{>partial_model_oneof}} {{/-first}}{{/oneOf}}{{^oneOf}}{{#anyOf}}{{#-first}} {{>partial_model_anyof}} -{{/-first}}{{/anyOf}}{{^anyOf}} +{{/-first}}{{/anyOf}}{{^anyOf}}{{#hasVars}} {{>partial_model_single}} +{{/hasVars}}{{^hasVars}} +{{>partial_model_alias}} +{{/hasVars}} {{/anyOf}}{{/oneOf}}{{/isAlias}}{{/model}}{{/models}} \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/julia-server/partial_model_alias.mustache b/modules/openapi-generator/src/main/resources/julia-server/partial_model_alias.mustache new file mode 100644 index 00000000000..88601ce07e3 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/julia-server/partial_model_alias.mustache @@ -0,0 +1,5 @@ +if !isdefined(@__MODULE__, :{{classname}}) + const {{classname}} = {{dataType}} +else + @warn("Skipping redefinition of {{classname}} to {{dataType}}") +end \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/julia-server/partial_model_anyof.mustache b/modules/openapi-generator/src/main/resources/julia-server/partial_model_anyof.mustache index fdfb841f7e4..dc7846c43e1 100644 --- a/modules/openapi-generator/src/main/resources/julia-server/partial_model_anyof.mustache +++ b/modules/openapi-generator/src/main/resources/julia-server/partial_model_anyof.mustache @@ -1,6 +1,6 @@ {{#anyOf}}{{#-first}} -@doc raw"""{{#description}}{{description}} -{{/description}} +@doc raw"""{{name}}{{#description}} +{{description}}{{/description}} {{classname}}(; value=nothing) """ diff --git a/modules/openapi-generator/src/main/resources/julia-server/partial_model_oneof.mustache b/modules/openapi-generator/src/main/resources/julia-server/partial_model_oneof.mustache index 9593beaa5c3..b75e456530b 100644 --- a/modules/openapi-generator/src/main/resources/julia-server/partial_model_oneof.mustache +++ b/modules/openapi-generator/src/main/resources/julia-server/partial_model_oneof.mustache @@ -1,6 +1,6 @@ {{#oneOf}}{{#-first}} -@doc raw"""{{#description}}{{description}} -{{/description}} +@doc raw"""{{name}}{{#description}} +{{description}}{{/description}} {{classname}}(; value=nothing) """ diff --git a/modules/openapi-generator/src/main/resources/julia-server/partial_model_single.mustache b/modules/openapi-generator/src/main/resources/julia-server/partial_model_single.mustache index 2e1d078a8ce..93313cb1da8 100644 --- a/modules/openapi-generator/src/main/resources/julia-server/partial_model_single.mustache +++ b/modules/openapi-generator/src/main/resources/julia-server/partial_model_single.mustache @@ -1,5 +1,5 @@ -@doc raw"""{{#description}}{{description}} -{{/description}} +@doc raw"""{{name}}{{#description}} +{{description}}{{/description}} {{classname}}(; {{#allVars}} @@ -40,7 +40,7 @@ function OpenAPI.validate_property(::Type{ {{classname}} }, name::Symbol, val) {{#allVars}} {{#isEnum}} if name === Symbol("{{#lambda.escapeDollar}}{{baseName}}{{/lambda.escapeDollar}}") - OpenAPI.validate_param(name, "{{classname}}", :enum, val, [{{#allowableValues}}{{#values}}{{#isString}}"{{{this}}}"{{/isString}}{{^isString}}{{{this}}}{{/isString}}{{^-last}}, {{/-last}}{{/values}}{{/allowableValues}}]) + OpenAPI.validate_param(name, "{{classname}}", :enum, val, [{{#_enum}}{{#isString}}"{{.}}"{{/isString}}{{^isString}}{{.}}{{/isString}}{{^-last}}, {{/-last}}{{/_enum}}]) end {{/isEnum}} {{^isEnum}} diff --git a/samples/server/petstore/julia/src/models/model_ApiResponse.jl b/samples/server/petstore/julia/src/models/model_ApiResponse.jl index ab65bc17482..107fab6677f 100644 --- a/samples/server/petstore/julia/src/models/model_ApiResponse.jl +++ b/samples/server/petstore/julia/src/models/model_ApiResponse.jl @@ -2,7 +2,8 @@ # Do not modify this file directly. Modify the OpenAPI specification instead. -@doc raw"""Describes the result of uploading an image resource +@doc raw"""ApiResponse +Describes the result of uploading an image resource ApiResponse(; code=nothing, diff --git a/samples/server/petstore/julia/src/models/model_Category.jl b/samples/server/petstore/julia/src/models/model_Category.jl index 66c0bf76687..bd583ab337c 100644 --- a/samples/server/petstore/julia/src/models/model_Category.jl +++ b/samples/server/petstore/julia/src/models/model_Category.jl @@ -2,7 +2,8 @@ # Do not modify this file directly. Modify the OpenAPI specification instead. -@doc raw"""A category for a pet +@doc raw"""Category +A category for a pet Category(; id=nothing, diff --git a/samples/server/petstore/julia/src/models/model_Order.jl b/samples/server/petstore/julia/src/models/model_Order.jl index 52feda46476..9443890b17b 100644 --- a/samples/server/petstore/julia/src/models/model_Order.jl +++ b/samples/server/petstore/julia/src/models/model_Order.jl @@ -2,7 +2,8 @@ # Do not modify this file directly. Modify the OpenAPI specification instead. -@doc raw"""An order for a pets from the pet store +@doc raw"""Order +An order for a pets from the pet store Order(; id=nothing, diff --git a/samples/server/petstore/julia/src/models/model_Pet.jl b/samples/server/petstore/julia/src/models/model_Pet.jl index f7ce8bd5541..569a9326912 100644 --- a/samples/server/petstore/julia/src/models/model_Pet.jl +++ b/samples/server/petstore/julia/src/models/model_Pet.jl @@ -2,7 +2,8 @@ # Do not modify this file directly. Modify the OpenAPI specification instead. -@doc raw"""A pet for sale in the pet store +@doc raw"""Pet +A pet for sale in the pet store Pet(; id=nothing, diff --git a/samples/server/petstore/julia/src/models/model_Tag.jl b/samples/server/petstore/julia/src/models/model_Tag.jl index 8eb2533685c..f717688e996 100644 --- a/samples/server/petstore/julia/src/models/model_Tag.jl +++ b/samples/server/petstore/julia/src/models/model_Tag.jl @@ -2,7 +2,8 @@ # Do not modify this file directly. Modify the OpenAPI specification instead. -@doc raw"""A tag for a pet +@doc raw"""Tag +A tag for a pet Tag(; id=nothing, diff --git a/samples/server/petstore/julia/src/models/model_User.jl b/samples/server/petstore/julia/src/models/model_User.jl index cb7685b65ac..5af0ccd94da 100644 --- a/samples/server/petstore/julia/src/models/model_User.jl +++ b/samples/server/petstore/julia/src/models/model_User.jl @@ -2,7 +2,8 @@ # Do not modify this file directly. Modify the OpenAPI specification instead. -@doc raw"""A User who is purchasing from the pet store +@doc raw"""User +A User who is purchasing from the pet store User(; id=nothing,