diff --git a/.codacy.yml b/.codacy.yml index 704408f2..4f349bcc 100644 --- a/.codacy.yml +++ b/.codacy.yml @@ -17,4 +17,5 @@ exclude_paths: - 'scs-multiapi-gradle-plugin/src/main/groovy/com/sngular/api/generator/plugin/*Task.groovy' - 'scs-multiapi-gradle-plugin/src/main/groovy/com/sngular/api/generator/plugin/model/*SpecFile.groovy' + - 'scs-multiapi-gradle-plugin/src/main/groovy/com/sngular/api/generator/plugin/model/OperationParameter.groovy' - '**/src/test/resources/**' diff --git a/multiapi-engine/pom.xml b/multiapi-engine/pom.xml index f5dcf16a..ca51f409 100644 --- a/multiapi-engine/pom.xml +++ b/multiapi-engine/pom.xml @@ -4,7 +4,7 @@ com.sngular multiapi-engine - 6.7.2 + 6.7.3 jar diff --git a/scs-multiapi-gradle-plugin/build.gradle b/scs-multiapi-gradle-plugin/build.gradle index 9c5f1a39..26780f99 100644 --- a/scs-multiapi-gradle-plugin/build.gradle +++ b/scs-multiapi-gradle-plugin/build.gradle @@ -21,7 +21,7 @@ repositories { } group = 'com.sngular' -version = '6.7.2' +version = '6.7.3' def SCSMultiApiPluginGroupId = group def SCSMultiApiPluginVersion = version @@ -31,7 +31,7 @@ dependencies { shadow localGroovy() shadow gradleApi() - implementation 'com.sngular:multiapi-engine:6.7.2' + implementation 'com.sngular:multiapi-engine:6.7.3' testImplementation 'org.assertj:assertj-core:3.24.2' testImplementation 'com.puppycrawl.tools:checkstyle:10.12.3' testImplementation 'org.junit.platform:junit-platform-launcher:1.9.2' @@ -100,7 +100,7 @@ testing { integrationTest(JvmTestSuite) { dependencies { - implementation 'com.sngular:scs-multiapi-gradle-plugin:6.7.2' + implementation 'com.sngular:scs-multiapi-gradle-plugin:6.7.3' implementation 'org.assertj:assertj-core:3.24.2' } diff --git a/scs-multiapi-gradle-plugin/src/main/groovy/com/sngular/api/generator/plugin/AsyncApiTask.groovy b/scs-multiapi-gradle-plugin/src/main/groovy/com/sngular/api/generator/plugin/AsyncApiTask.groovy index 7261441e..ae172be2 100644 --- a/scs-multiapi-gradle-plugin/src/main/groovy/com/sngular/api/generator/plugin/AsyncApiTask.groovy +++ b/scs-multiapi-gradle-plugin/src/main/groovy/com/sngular/api/generator/plugin/AsyncApiTask.groovy @@ -92,12 +92,27 @@ abstract class AsyncApiTask extends DefaultTask { if (parameterObject.getIds()) { builder.ids(parameterObject.ids) } + if (parameterObject.getModelNamePrefix()) { + builder.modelNamePrefix(parameterObject.modelNamePrefix) + } if (parameterObject.getModelNameSuffix()) { builder.modelNameSuffix(parameterObject.modelNameSuffix) } if (parameterObject.getModelPackage()) { builder.modelPackage(parameterObject.modelPackage) } + if (parameterObject.getDateFormat()) { + builder.dateFormat(parameterObject.dateFormat) + } + if (parameterObject.getDateTimeFormat()) { + builder.dateTimeFormat(parameterObject.dateTimeFormat) + } + if (parameterObject.getUseTimeType()) { + builder.useTimeType(parameterObject.useTimeType) + } + if (parameterObject.getUseLombokModelAnnotation()) { + builder.useLombokModelAnnotation(parameterObject.useLombokModelAnnotation) + } return builder.build() } diff --git a/scs-multiapi-gradle-plugin/src/main/groovy/com/sngular/api/generator/plugin/model/OperationParameter.groovy b/scs-multiapi-gradle-plugin/src/main/groovy/com/sngular/api/generator/plugin/model/OperationParameter.groovy index 4129e184..156a3b14 100644 --- a/scs-multiapi-gradle-plugin/src/main/groovy/com/sngular/api/generator/plugin/model/OperationParameter.groovy +++ b/scs-multiapi-gradle-plugin/src/main/groovy/com/sngular/api/generator/plugin/model/OperationParameter.groovy @@ -6,6 +6,8 @@ package com.sngular.api.generator.plugin.model +import com.sngular.api.generator.plugin.common.model.TypeConstants + class OperationParameter { String ids @@ -14,10 +16,20 @@ class OperationParameter { String modelPackage + String modelNamePrefix + String modelNameSuffix String classNamePostfix + String dateFormat + + String dateTimeFormat + + TypeConstants.TimeType useTimeType + + boolean useLombokModelAnnotation + String getIds() { return ids } @@ -46,6 +58,14 @@ class OperationParameter { this.modelPackage = modelPackage } + String getModelNamePrefix() { + return modelNamePrefix + } + + void setModelNamePrefix(final String modelNamePrefix) { + this.modelNamePrefix = modelNamePrefix + } + String getModelNameSuffix() { return modelNameSuffix } @@ -62,4 +82,36 @@ class OperationParameter { this.classNamePostfix = classNamePostfix } + String getDateFormat() { + return dateFormat + } + + void setDateFormat(final String dateFormat) { + this.dateFormat = dateFormat + } + + String getDateTimeFormat() { + return dateTimeFormat + } + + void setDateTimeFormat(final String dateTimeFormat) { + this.dateTimeFormat = dateTimeFormat + } + + TypeConstants.TimeType getUseTimeType() { + return useTimeType + } + + void setUseTimeType(final TypeConstants.TimeType useTimeType) { + this.useTimeType = useTimeType + } + + boolean getUseLombokModelAnnotation() { + return useLombokModelAnnotation + } + + void setUseLombokModelAnnotation(final boolean useLombokModelAnnotation) { + this.useLombokModelAnnotation = useLombokModelAnnotation + } + } \ No newline at end of file diff --git a/scs-multiapi-gradle-plugin/src/test/java/com/sngular/api/generator/plugin/ScsMultiApiTest.java b/scs-multiapi-gradle-plugin/src/test/java/com/sngular/api/generator/plugin/ScsMultiApiTest.java index 341ec72b..4bbbe0af 100644 --- a/scs-multiapi-gradle-plugin/src/test/java/com/sngular/api/generator/plugin/ScsMultiApiTest.java +++ b/scs-multiapi-gradle-plugin/src/test/java/com/sngular/api/generator/plugin/ScsMultiApiTest.java @@ -8,8 +8,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; +import com.sngular.api.generator.plugin.asyncapi.parameter.OperationParameterObject; import com.sngular.api.generator.plugin.common.model.TypeConstants; import com.sngular.api.generator.plugin.model.OpenApiSpecFile; +import com.sngular.api.generator.plugin.model.OperationParameter; import com.sngular.api.generator.plugin.openapi.parameter.SpecFile; import org.gradle.api.Project; import org.gradle.testfixtures.ProjectBuilder; @@ -54,4 +56,47 @@ void openApiTaskDefaultsUseTimeTypeToLocal() { assertEquals(TypeConstants.TimeType.LOCAL, result.getUseTimeType()); } + @Test + void asyncApiTaskMapsUseTimeType() { + final OperationParameter parameterObject = new OperationParameter(); + parameterObject.setUseTimeType(TypeConstants.TimeType.ZONED); + + final OperationParameterObject result = AsyncApiTask.toOperationParameterObject(parameterObject); + + assertEquals(TypeConstants.TimeType.ZONED, result.getUseTimeType()); + } + + @Test + void asyncApiTaskDefaultsUseTimeTypeToLocal() { + final OperationParameter parameterObject = new OperationParameter(); + + final OperationParameterObject result = AsyncApiTask.toOperationParameterObject(parameterObject); + + assertEquals(TypeConstants.TimeType.LOCAL, result.getUseTimeType()); + } + + @Test + void asyncApiTaskMapsCommonSpecFileFields() { + final OperationParameter parameterObject = new OperationParameter(); + parameterObject.setApiPackage("com.example.api"); + parameterObject.setModelPackage("com.example.model"); + parameterObject.setModelNamePrefix("Prefix"); + parameterObject.setModelNameSuffix("DTO"); + parameterObject.setClassNamePostfix("Consumer"); + parameterObject.setDateFormat("dd/MM/yyyy"); + parameterObject.setDateTimeFormat("dd/MM/yyyy HH:mm"); + parameterObject.setUseLombokModelAnnotation(true); + + final OperationParameterObject result = AsyncApiTask.toOperationParameterObject(parameterObject); + + assertEquals("com.example.api", result.getApiPackage()); + assertEquals("com.example.model", result.getModelPackage()); + assertEquals("Prefix", result.getModelNamePrefix()); + assertEquals("DTO", result.getModelNameSuffix()); + assertEquals("Consumer", result.getClassNamePostfix()); + assertEquals("dd/MM/yyyy", result.getDateFormat()); + assertEquals("dd/MM/yyyy HH:mm", result.getDateTimeFormat()); + assertTrue(result.isUseLombokModelAnnotation()); + } + } diff --git a/scs-multiapi-maven-plugin/pom.xml b/scs-multiapi-maven-plugin/pom.xml index 7ced72c7..39a9ef94 100644 --- a/scs-multiapi-maven-plugin/pom.xml +++ b/scs-multiapi-maven-plugin/pom.xml @@ -4,7 +4,7 @@ com.sngular scs-multiapi-maven-plugin - 6.7.2 + 6.7.3 maven-plugin AsyncApi - OpenApi Code Generator Maven Plugin @@ -271,7 +271,7 @@ com.sngular multiapi-engine - 6.7.2 + 6.7.3 org.apache.maven