From ebc31d9da982b19531cd962b9f6a1968089c393a Mon Sep 17 00:00:00 2001 From: Stephan Schnabel Date: Tue, 2 Jan 2024 17:28:40 +0100 Subject: [PATCH] Fix enum with validation, rel #311 --- gen/main/java/issue/_331/DefaultApi.java | 2 +- gen/main/java/issue/_331/DefaultApiClient.java | 2 +- gen/main/java/issue/_331/ModelString.java | 8 ++++---- .../openapitools/codegen/languages/MicronautCodegen.java | 9 +++++++++ 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/gen/main/java/issue/_331/DefaultApi.java b/gen/main/java/issue/_331/DefaultApi.java index 0983ff6b..0dbf3a89 100644 --- a/gen/main/java/issue/_331/DefaultApi.java +++ b/gen/main/java/issue/_331/DefaultApi.java @@ -64,7 +64,7 @@ io.micronaut.http.HttpResponse string( java.util.Optional> withoutValidation, @io.micronaut.core.annotation.NonNull @io.micronaut.http.annotation.QueryValue - java.util.Optional> withEnum, + java.util.Optional> withEnum, @io.micronaut.core.annotation.NonNull @io.micronaut.http.annotation.QueryValue java.util.Optional> withEmail, diff --git a/gen/main/java/issue/_331/DefaultApiClient.java b/gen/main/java/issue/_331/DefaultApiClient.java index 5ee007ec..8a8ea1e1 100644 --- a/gen/main/java/issue/_331/DefaultApiClient.java +++ b/gen/main/java/issue/_331/DefaultApiClient.java @@ -64,7 +64,7 @@ io.micronaut.http.HttpResponse string( java.util.List withoutValidation, @io.micronaut.core.annotation.Nullable @io.micronaut.http.annotation.QueryValue(value = "withEnum") - java.util.List<@javax.validation.constraints.NotNull @javax.validation.Valid StringWithEnum> withEnum, + java.util.List<@javax.validation.constraints.NotNull StringWithEnum> withEnum, @io.micronaut.core.annotation.Nullable @io.micronaut.http.annotation.QueryValue(value = "withEmail") java.util.List withEmail, diff --git a/gen/main/java/issue/_331/ModelString.java b/gen/main/java/issue/_331/ModelString.java index 98100394..c03d97a7 100644 --- a/gen/main/java/issue/_331/ModelString.java +++ b/gen/main/java/issue/_331/ModelString.java @@ -18,7 +18,7 @@ public class ModelString { @com.fasterxml.jackson.annotation.JsonProperty(JSON_PROPERTY_WITH_ENUM) @com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL) - private java.util.List<@javax.validation.constraints.NotNull @javax.validation.Valid StringWithEnum> withEnum; + private java.util.List<@javax.validation.constraints.NotNull StringWithEnum> withEnum; @com.fasterxml.jackson.annotation.JsonProperty(JSON_PROPERTY_WITH_EMAIL) @com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL) @@ -102,7 +102,7 @@ public ModelString removeWithoutValidationItem(java.lang.String withoutValidatio return this; } - public ModelString withEnum(java.util.List<@javax.validation.constraints.NotNull @javax.validation.Valid StringWithEnum> newWithEnum) { + public ModelString withEnum(java.util.List<@javax.validation.constraints.NotNull StringWithEnum> newWithEnum) { this.withEnum = newWithEnum; return this; } @@ -232,11 +232,11 @@ public void setWithoutValidation(java.util.List newWithoutVali this.withoutValidation = newWithoutValidation; } - public java.util.List<@javax.validation.constraints.NotNull @javax.validation.Valid StringWithEnum> getWithEnum() { + public java.util.List<@javax.validation.constraints.NotNull StringWithEnum> getWithEnum() { return withEnum; } - public void setWithEnum(java.util.List<@javax.validation.constraints.NotNull @javax.validation.Valid StringWithEnum> newWithEnum) { + public void setWithEnum(java.util.List<@javax.validation.constraints.NotNull StringWithEnum> newWithEnum) { this.withEnum = newWithEnum; } diff --git a/src/main/java/org/openapitools/codegen/languages/MicronautCodegen.java b/src/main/java/org/openapitools/codegen/languages/MicronautCodegen.java index a41a562e..0d605217 100644 --- a/src/main/java/org/openapitools/codegen/languages/MicronautCodegen.java +++ b/src/main/java/org/openapitools/codegen/languages/MicronautCodegen.java @@ -501,6 +501,12 @@ public void postProcessParameter(CodegenParameter parameter) { if (dateTimeRelaxed && (parameter.isDate || parameter.isDateTime)) { addSupportingFile(sourceFolder, invokerPackage, "TimeTypeConverterRegistrar"); } + if (parameter.isArray + && parameter.items.allowableValues != null + && !parameter.items.allowableValues.isEmpty()) { + parameter.dataType = parameter.datatypeWithEnum = parameter.dataType.replace("@javax.validation.Valid ", + ""); + } parameter.vendorExtensions.put("x-datatype-without-validation", removeValidation(parameter.dataType)); } @@ -521,6 +527,9 @@ public void postProcessModelProperty(CodegenModel model, CodegenProperty propert if (openApiNullable && !property.required && property.isNullable) { property.getVendorExtensions().put("x-jackson-nullable", true); } + if (property.isArray && property.items.allowableValues != null && !property.items.allowableValues.isEmpty()) { + property.dataType = property.datatypeWithEnum = property.dataType.replace("@javax.validation.Valid ", ""); + } } @Override