diff --git a/multiapi-engine/pom.xml b/multiapi-engine/pom.xml index 795c5577..b925bc3a 100644 --- a/multiapi-engine/pom.xml +++ b/multiapi-engine/pom.xml @@ -4,7 +4,7 @@ com.sngular multiapi-engine - 6.1.0 + 6.2.0 jar diff --git a/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/common/model/SchemaFieldObjectType.java b/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/common/model/SchemaFieldObjectType.java index 4bf57f22..61f91c70 100644 --- a/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/common/model/SchemaFieldObjectType.java +++ b/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/common/model/SchemaFieldObjectType.java @@ -6,13 +6,14 @@ package com.sngular.api.generator.plugin.common.model; -import java.util.AbstractMap.SimpleImmutableEntry; -import java.util.Map; -import java.util.Objects; import com.sngular.api.generator.plugin.openapi.exception.CodeGenerationException; import lombok.Data; import org.apache.commons.lang3.StringUtils; +import java.util.AbstractMap.SimpleImmutableEntry; +import java.util.Map; +import java.util.Objects; + @Data public class SchemaFieldObjectType { @@ -38,6 +39,21 @@ public class SchemaFieldObjectType { new SimpleImmutableEntry<>(TypeConstants.MULTIPART_FILE, "MultipartFile") ); + private static final Map IMPORT_TYPE_MAPPINGS = Map.ofEntries( + new SimpleImmutableEntry<>(TypeConstants.OBJECT, "java.util.Object"), + new SimpleImmutableEntry<>(TypeConstants.ARRAY, "java.util.List"), + new SimpleImmutableEntry<>(TypeConstants.MAP, "java.util.Map"), + new SimpleImmutableEntry<>(TypeConstants.BIG_DECIMAL, "java.math.BigDecimal"), + new SimpleImmutableEntry<>(TypeConstants.STRING, "java.util.String"), + new SimpleImmutableEntry<>(TypeConstants.LOCALDATE, "java.time.LocalDate"), + new SimpleImmutableEntry<>(TypeConstants.LOCALDATETIME, "java.time.LocalDateTime"), + new SimpleImmutableEntry<>(TypeConstants.ZONEDDATE, "java.time." + ZONED_DATE_TIME), + new SimpleImmutableEntry<>(TypeConstants.ZONEDDATETIME, "java.time." + ZONED_DATE_TIME), + new SimpleImmutableEntry<>(TypeConstants.OFFSETDATE, "java.time." + OFFSET_DATE_TIME), + new SimpleImmutableEntry<>(TypeConstants.OFFSETDATETIME, "java.time." + OFFSET_DATE_TIME), + new SimpleImmutableEntry<>(TypeConstants.MULTIPART_FILE, "MultipartFile") + ); + private static final Map IMPL_TYPE_MAPPINGS = Map.ofEntries( new SimpleImmutableEntry<>(TypeConstants.OBJECT, "Object"), new SimpleImmutableEntry<>(TypeConstants.ARRAY, "ArrayList"), @@ -141,8 +157,7 @@ public String toString() { @Override public boolean equals(final Object obj) { boolean result = false; - if (obj instanceof SchemaFieldObjectType) { - final SchemaFieldObjectType other = (SchemaFieldObjectType) obj; + if (obj instanceof SchemaFieldObjectType other) { final boolean baseTypeIsEqual = baseType.equals(other.baseType); final boolean innerTypeIsEqual = Objects.isNull(innerType) ? Objects.isNull(other.innerType) : innerType.equals(other.innerType); result = baseTypeIsEqual && innerTypeIsEqual; @@ -155,4 +170,8 @@ public boolean equals(final Object obj) { public int hashCode() { return Objects.hash(Objects.isNull(innerType) ? 0 : innerType.hashCode(), baseType); } + + public String getImportName() { + return IMPORT_TYPE_MAPPINGS.get(this.baseType); + } } diff --git a/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/common/tools/MapperUtil.java b/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/common/tools/MapperUtil.java index 11529a15..7906d124 100644 --- a/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/common/tools/MapperUtil.java +++ b/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/common/tools/MapperUtil.java @@ -22,6 +22,7 @@ public class MapperUtil { private static final String SLASH = "/"; private static final String PACKAGE_SEPARATOR_STR = "."; + public static final String JAVA_TIME = "java.time."; private MapperUtil() {} @@ -154,37 +155,19 @@ public static String getPojoNameFromRef(final JsonNode schema, final CommonSpecF } public static String getDateType(final JsonNode schema, final CommonSpecFile specFile) { - final String dateType; - switch (ApiTool.getFormat(schema)) { - - case "date": - switch (specFile.getUseTimeType()) { - case ZONED: - dateType = TypeConstants.ZONEDDATE; - break; - case OFFSET: - dateType = TypeConstants.OFFSETDATE; - break; - default: - dateType = TypeConstants.LOCALDATE; - } - break; - case "date-time": - switch (specFile.getUseTimeType()) { - case ZONED: - dateType = TypeConstants.ZONEDDATETIME; - break; - case OFFSET: - dateType = TypeConstants.OFFSETDATETIME; - break; - default: - dateType = TypeConstants.LOCALDATETIME; - } - break; - default: - dateType = TypeConstants.LOCALDATETIME; - } - return dateType; + return switch (ApiTool.getFormat(schema)) { + case "date" -> switch (specFile.getUseTimeType()) { + case ZONED -> TypeConstants.ZONEDDATE; + case OFFSET -> TypeConstants.OFFSETDATE; + default -> TypeConstants.LOCALDATE; + }; + case "date-time" -> switch (specFile.getUseTimeType()) { + case ZONED -> TypeConstants.ZONEDDATETIME; + case OFFSET -> TypeConstants.OFFSETDATETIME; + default -> TypeConstants.LOCALDATETIME; + }; + default -> TypeConstants.LOCALDATETIME; + }; } public static String getRefClass(final JsonNode schema) { diff --git a/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/openapi/utils/MapperPathUtil.java b/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/openapi/utils/MapperPathUtil.java index ae30157d..fefa109f 100644 --- a/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/openapi/utils/MapperPathUtil.java +++ b/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/openapi/utils/MapperPathUtil.java @@ -238,13 +238,15 @@ private static List mapParameterObjects( private static ParameterObject buildParameterObject( final SpecFile specFile, final GlobalObject globalObject, final JsonNode refParameter, final Path baseDir) { + final var dateType = getSchemaType(getContentOrSchema(refParameter), TypeConstants.OBJECT, specFile, globalObject, baseDir); return ParameterObject.builder() .name(ApiTool.getName(refParameter)) .required(ApiTool.getNodeAsBoolean(refParameter, REQUIRED)) .description(ApiTool.getNodeAsString(refParameter, DESCRIPTION)) .in(ApiTool.getNodeAsString(refParameter, "in")) - .dataType(getSchemaType(getContentOrSchema(refParameter), TypeConstants.OBJECT, specFile, globalObject, baseDir)) + .dataType(dateType) .isCollection(ApiTool.hasItems(getContentOrSchema(refParameter))) + .importName(dateType.getImportName()) .build(); } diff --git a/multiapi-engine/src/main/resources/templates/openapi/template.ftlh b/multiapi-engine/src/main/resources/templates/openapi/template.ftlh index 7c7296c8..f98549b4 100644 --- a/multiapi-engine/src/main/resources/templates/openapi/template.ftlh +++ b/multiapi-engine/src/main/resources/templates/openapi/template.ftlh @@ -1,6 +1,52 @@ <#ftl output_format="plainText"> package <#if packageApi??>${packageApi}<#elseif package??> ${package}; +<#assign imports=[]> +<#assign model_imports=[]> +<#list pathObjects as path> + <#list path.operationObjects as operation> + <#list operation.requestObjects as request> + <#list request.contentObjects as content> + <#if content.importName?? && (!imports?seq_contains(content.importName)) && (!model_imports?seq_contains(content.importName))> + <#if (!checkBasicTypes?seq_contains(content.importName))> + <#if (!content.importName?contains("java."))> + <#assign model_imports = model_imports+[content.importName]> + <#else> + <#assign imports = imports+[content.importName]> + + + + + + <#list operation.responseObjects as response> + <#list response.contentObjects as content> + <#if content.importName?? && (!imports?seq_contains(content.importName)) && (!model_imports?seq_contains(content.importName))> + <#if (!checkBasicTypes?seq_contains(content.importName))> + <#if (!content.importName?contains("java."))> + <#assign model_imports = model_imports+[content.importName]> + <#else> + <#assign imports = imports+[content.importName]> + + + + + + <#list operation.parameterObjects as parameter> + <#if parameter.importName?? && (!imports?seq_contains(parameter.importName)) && (!model_imports?seq_contains(parameter.importName))> + <#if (!checkBasicTypes?seq_contains(parameter.importName))> + <#if (!parameter.importName?contains("java."))> + <#assign model_imports = model_imports+[parameter.importName]> + <#else> + <#assign imports = imports+[parameter.importName]> + + + + + + +<#list imports as import> +import ${import}; + import java.util.Optional; import java.util.List; import java.util.Map; @@ -17,37 +63,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.NativeWebRequest; -<#assign imports=[]> -<#list pathObjects as path> - <#list path.operationObjects as operation> - <#list operation.requestObjects as request> - <#list request.contentObjects as content> - <#if content.importName?? && (!imports?seq_contains(content.importName))> - <#if (!checkBasicTypes?seq_contains(content.importName))> - <#assign imports = imports+[content.importName]> - - - - - <#list operation.responseObjects as response> - <#list response.contentObjects as content> - <#if content.importName?? && (!imports?seq_contains(content.importName))> - <#if (!checkBasicTypes?seq_contains(content.importName))> - <#assign imports = imports+[content.importName]> - - - - - <#list operation.parameterObjects as parameter> - <#if parameter.importName?? && (!imports?seq_contains(parameter.importName))> - <#if (!checkBasicTypes?seq_contains(parameter.importName))> - <#assign imports = imports+[parameter.importName]> - - - - - -<#list imports as import> +<#list model_imports as import> import <#if packageModel??>${packageModel}<#elseif package??>${package}.${import}; diff --git a/multiapi-engine/src/main/resources/templates/openapi/templateCallRestClient.ftlh b/multiapi-engine/src/main/resources/templates/openapi/templateCallRestClient.ftlh index e4bbc8ef..d65f406f 100644 --- a/multiapi-engine/src/main/resources/templates/openapi/templateCallRestClient.ftlh +++ b/multiapi-engine/src/main/resources/templates/openapi/templateCallRestClient.ftlh @@ -1,43 +1,59 @@ <#ftl output_format="plainText"> package <#if packageApi??>${packageApi}<#elseif package??> ${package}; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import ${packageClient}.ApiRestClient; - <#assign imports=[]> +<#assign model_imports=[]> <#list pathObjects as path> <#list path.operationObjects as operation> <#list operation.requestObjects as request> <#list request.contentObjects as content> - <#if content.importName?? && (!imports?seq_contains(content.importName))> + <#if content.importName?? && (!imports?seq_contains(content.importName)) && (!model_imports?seq_contains(content.importName))> <#if (!checkBasicTypes?seq_contains(content.importName))> - <#assign imports = imports+[content.importName]> + <#if (!content.importName?contains("java."))> + <#assign model_imports = model_imports+[content.importName]> + <#else> + <#assign imports = imports+[content.importName]> + <#list operation.responseObjects as response> <#list response.contentObjects as content> - <#if content.importName?? && (!imports?seq_contains(content.importName))> + <#if content.importName?? && (!imports?seq_contains(content.importName)) && (!model_imports?seq_contains(content.importName))> <#if (!checkBasicTypes?seq_contains(content.importName))> - <#assign imports = imports+[content.importName]> + <#if (!content.importName?contains("java."))> + <#assign model_imports = model_imports+[content.importName]> + <#else> + <#assign imports = imports+[content.importName]> + <#list operation.parameterObjects as parameter> - <#if parameter.importName?? && (!imports?seq_contains(parameter.importName))> - <#if (!checkBasicTypes?seq_contains(parameter.importName))> + <#if parameter.importName?? && (!imports?seq_contains(parameter.importName)) && (!model_imports?seq_contains(parameter.importName))> + <#if (!checkBasicTypes?seq_contains(parameter.importName))> + <#if (!parameter.importName?contains("java."))> + <#assign model_imports = model_imports+[parameter.importName]> + <#else> <#assign imports = imports+[parameter.importName]> + <#list imports as import> +import ${import}; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import ${packageClient}.ApiRestClient; + +<#list model_imports as import> import <#if packageModel??>${packageModel}<#elseif package??>${package}.${import}; @@ -93,15 +109,21 @@ public class ${className?cap_first}Api { * ${operation.operationType} ${path.pathName}<#if operation.summary?has_content>: ${operation.summary} <#if operation.responseObjects?has_content> <#if operation.parameterObjects?has_content> - * <#list operation.parameterObjects as parameter>@param ${parameter.name} ${parameter.description} ${parameter.required?c} +<#list operation.parameterObjects as parameter> + * @param ${parameter.name} ${parameter.description!" "} <#if parameter.required == true>(required) + <#if path.parameterObjects?has_content> - * <#list path.parameterObjects as parameter>@param ${parameter.name} ${parameter.description} ${parameter.required?c} + <#list path.parameterObjects as parameter> + * @param ${parameter.name} ${parameter.description!" "} <#if parameter.required == true>(required) + <#if operation.requestObjects?has_content> - *<#list operation.requestObjects as request><#list request.contentObjects as content> @param ${content.dataType?api.getVariableNameString()}<#if content?has_next>, ${request.description! ""} <#if request.required == true>(required) + <#list operation.requestObjects as request><#list request.contentObjects as content> + * @param ${content.dataType?api.getVariableNameString()}<#if content?has_next>, ${request.description! ""} <#if request.required == true>(required) + - * @return<#list operation.responseObjects as response><#if response.responseName != "default"> ${response.description}; (status code ${response.responseName}) + * @return<#list operation.responseObjects as response><#if response.responseName != "default"> ${response.description!" "}; (status code ${response.responseName}) * @throws RestClientException if an error occurs while attempting to invoke the API */ @@ -152,7 +174,6 @@ public class ${className?cap_first}Api { <#if operation.parameterObjects?has_content> <#list operation.parameterObjects as parameter> <#if parameter.in == "query"> - queryParams.putAll(apiRestClient.parameterToMultiValueMap(<#if parameter.isCollection == true> ApiRestClient.CollectionFormat.valueOf("{{{.}}}".toUpperCase(Locale.ROOT))<#else> null, "${parameter.name}", ${parameter.name})); diff --git a/multiapi-engine/src/main/resources/templates/openapi/templateCallWebClient.ftlh b/multiapi-engine/src/main/resources/templates/openapi/templateCallWebClient.ftlh index d11d7fec..f82117c8 100644 --- a/multiapi-engine/src/main/resources/templates/openapi/templateCallWebClient.ftlh +++ b/multiapi-engine/src/main/resources/templates/openapi/templateCallWebClient.ftlh @@ -1,44 +1,59 @@ <#ftl output_format="plainText"> package <#if packageApi??>${packageApi}<#elseif package??> ${package}; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import ${packageClient}.ApiWebClient; - <#assign imports=[]> +<#assign model_imports=[]> <#list pathObjects as path> <#list path.operationObjects as operation> <#list operation.requestObjects as request> <#list request.contentObjects as content> - <#if content.importName?? && (!imports?seq_contains(content.importName))> + <#if content.importName?? && (!imports?seq_contains(content.importName)) && (!model_imports?seq_contains(content.importName))> <#if (!checkBasicTypes?seq_contains(content.importName))> - <#assign imports = imports+[content.importName]> + <#if (!content.importName?contains("java."))> + <#assign model_imports = model_imports+[content.importName]> + <#else> + <#assign imports = imports+[content.importName]> + <#list operation.responseObjects as response> <#list response.contentObjects as content> - <#if content.importName?? && (!imports?seq_contains(content.importName))> + <#if content.importName?? && (!imports?seq_contains(content.importName)) && (!model_imports?seq_contains(content.importName))> <#if (!checkBasicTypes?seq_contains(content.importName))> - <#assign imports = imports+[content.importName]> + <#if (!content.importName?contains("java."))> + <#assign model_imports = model_imports+[content.importName]> + <#else> + <#assign imports = imports+[content.importName]> + <#list operation.parameterObjects as parameter> - <#if parameter.importName?? && (!imports?seq_contains(parameter.importName))> - <#if (!checkBasicTypes?seq_contains(parameter.importName))> + <#if parameter.importName?? && (!imports?seq_contains(parameter.importName)) && (!model_imports?seq_contains(parameter.importName))> + <#if (!checkBasicTypes?seq_contains(parameter.importName))> + <#if (!parameter.importName?contains("java."))> + <#assign model_imports = model_imports+[parameter.importName]> + <#else> <#assign imports = imports+[parameter.importName]> + <#list imports as import> -import <#if packageModel??>${packageModel}<#elseif package??>${package}List<.${import}; +import ${import}; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import ${packageClient}.ApiWebClient; +<#list model_imports as import> +import <#if packageModel??>${packageModel}<#elseif package??>${package}.${import}; import ${packageAuth}.Authentication; @@ -214,13 +229,19 @@ public class ${className?cap_first}Api { * ${operation.operationType} ${path.pathName}<#if operation.summary?has_content>: ${operation.summary} <#if operation.responseObjects?has_content> <#if operation.parameterObjects?has_content> - * @param<#list operation.parameterObjects as parameter> ${parameter.name} ${parameter.description} ${parameter.required?c} + <#list operation.parameterObjects as parameter> + * @param ${parameter.name} ${parameter.description} <#if parameter.required == true>(required) + <#if path.parameterObjects?has_content> - * <#list operation.parameterObjects as parameter>@param ${parameter.name} ${parameter.description} ${parameter.required?c} +<#list operation.parameterObjects as parameter> + * @param ${parameter.name} ${parameter.description} <#if parameter.required == true>(required) + <#if operation.requestObjects?has_content> - * <#list operation.requestObjects as request>@param <#list request.contentObjects as content>${content.dataType?api.getVariableNameString()} <#if content?has_next>, ${request.description! ""}<#if request.required == true> (required) +<#list operation.requestObjects as request> + * @param <#list request.contentObjects as content>${content.dataType?api.getVariableNameString()} <#if content?has_next>, ${request.description! ""}<#if request.required == true> (required) + * @return<#list operation.responseObjects as response><#if response.responseName != "default"> ${response.description}; (status code ${response.responseName}) diff --git a/multiapi-engine/src/test/resources/openapigenerator/testCoconutSchema/assets/SchemaApi.java b/multiapi-engine/src/test/resources/openapigenerator/testCoconutSchema/assets/SchemaApi.java index e8b90283..a62557e1 100644 --- a/multiapi-engine/src/test/resources/openapigenerator/testCoconutSchema/assets/SchemaApi.java +++ b/multiapi-engine/src/test/resources/openapigenerator/testCoconutSchema/assets/SchemaApi.java @@ -1,5 +1,6 @@ package com.sngular.multifileplugin.testCoconutSchema; +import java.util.String; import java.util.Optional; import java.util.List; import java.util.Map; diff --git a/multiapi-engine/src/test/resources/openapigenerator/testCoconutSchema/assets/SchemaMasterApi.java b/multiapi-engine/src/test/resources/openapigenerator/testCoconutSchema/assets/SchemaMasterApi.java index 634f34ed..85540ca6 100644 --- a/multiapi-engine/src/test/resources/openapigenerator/testCoconutSchema/assets/SchemaMasterApi.java +++ b/multiapi-engine/src/test/resources/openapigenerator/testCoconutSchema/assets/SchemaMasterApi.java @@ -1,5 +1,6 @@ package com.sngular.multifileplugin.testCoconutSchema; +import java.util.String; import java.util.Optional; import java.util.List; import java.util.Map; diff --git a/multiapi-engine/src/test/resources/openapigenerator/testComplexAnyOf/assets/SchemaApi.java b/multiapi-engine/src/test/resources/openapigenerator/testComplexAnyOf/assets/SchemaApi.java index be1fcb3c..4bf11f37 100644 --- a/multiapi-engine/src/test/resources/openapigenerator/testComplexAnyOf/assets/SchemaApi.java +++ b/multiapi-engine/src/test/resources/openapigenerator/testComplexAnyOf/assets/SchemaApi.java @@ -1,5 +1,6 @@ package com.sngular.multifileplugin.testcomplexanyof.api; +import java.util.String; import java.util.Optional; import java.util.List; import java.util.Map; diff --git a/multiapi-engine/src/test/resources/openapigenerator/testComplexAnyOf/assets/SchemaMasterApi.java b/multiapi-engine/src/test/resources/openapigenerator/testComplexAnyOf/assets/SchemaMasterApi.java index 2e0e4795..da7830f6 100644 --- a/multiapi-engine/src/test/resources/openapigenerator/testComplexAnyOf/assets/SchemaMasterApi.java +++ b/multiapi-engine/src/test/resources/openapigenerator/testComplexAnyOf/assets/SchemaMasterApi.java @@ -1,5 +1,6 @@ package com.sngular.multifileplugin.testcomplexanyof.api; +import java.util.String; import java.util.Optional; import java.util.List; import java.util.Map; diff --git a/multiapi-engine/src/test/resources/openapigenerator/testQueryParam/assets/TestApi.java b/multiapi-engine/src/test/resources/openapigenerator/testQueryParam/assets/TestApi.java index 0cdafb06..e6a54cfa 100644 --- a/multiapi-engine/src/test/resources/openapigenerator/testQueryParam/assets/TestApi.java +++ b/multiapi-engine/src/test/resources/openapigenerator/testQueryParam/assets/TestApi.java @@ -1,5 +1,6 @@ package com.sngular.multifileplugin.testQueryParam; +import java.util.String; import java.util.Optional; import java.util.List; import java.util.Map; diff --git a/multiapi-engine/src/test/resources/openapigenerator/testRestClientApiGeneration/api-test.yml b/multiapi-engine/src/test/resources/openapigenerator/testRestClientApiGeneration/api-test.yml index 4e795317..ca097028 100644 --- a/multiapi-engine/src/test/resources/openapigenerator/testRestClientApiGeneration/api-test.yml +++ b/multiapi-engine/src/test/resources/openapigenerator/testRestClientApiGeneration/api-test.yml @@ -48,6 +48,18 @@ paths: schema: type: integer format: int32 + - name: pathVariableDate + in: path + required: true + schema: + type: string + format: date-time + - name: QueryParamDate + in: query + required: true + schema: + type: string + format: date-time responses: '200': description: Expected response to a valid request diff --git a/multiapi-engine/src/test/resources/openapigenerator/testRestClientApiGeneration/assets/TestApi.java b/multiapi-engine/src/test/resources/openapigenerator/testRestClientApiGeneration/assets/TestApi.java index 6d8f3fd5..5ff7441e 100644 --- a/multiapi-engine/src/test/resources/openapigenerator/testRestClientApiGeneration/assets/TestApi.java +++ b/multiapi-engine/src/test/resources/openapigenerator/testRestClientApiGeneration/assets/TestApi.java @@ -1,5 +1,6 @@ package com.sngular.multifileplugin.restclient; +import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -74,25 +75,29 @@ public ResponseEntity listTestWithHttpInfo() throws RestClientExcept /** * GET /test/{testId}: Info for a specific test - * @param testId The id of the test to retrieve true + * @param testId The id of the test to retrieve (required) + * @param pathVariableDate (required) + * @param QueryParamDate (required) * @return Expected response to a valid request; (status code 200) * @throws RestClientException if an error occurs while attempting to invoke the API */ - public ApiTestInfoDTO showTestById(Integer testId) throws RestClientException { - return showTestByIdWithHttpInfo(testId).getBody(); + public ApiTestInfoDTO showTestById(Integer testId, LocalDateTime pathVariableDate, LocalDateTime QueryParamDate) throws RestClientException { + return showTestByIdWithHttpInfo(testId, pathVariableDate, QueryParamDate).getBody(); } - public ResponseEntity showTestByIdWithHttpInfo(Integer testId) throws RestClientException { + public ResponseEntity showTestByIdWithHttpInfo(Integer testId, LocalDateTime pathVariableDate, LocalDateTime QueryParamDate) throws RestClientException { Object postBody = null; final Map uriVariables = new HashMap(); uriVariables.put("testId", testId); + uriVariables.put("pathVariableDate", pathVariableDate); final MultiValueMap queryParams = new LinkedMultiValueMap(); final HttpHeaders headerParams = new HttpHeaders(); final MultiValueMap cookieParams = new LinkedMultiValueMap(); final MultiValueMap formParams = new LinkedMultiValueMap(); + queryParams.putAll(apiRestClient.parameterToMultiValueMap( null, "QueryParamDate", QueryParamDate)); final String[] localVarAccepts = {"application/json"}; final List localVarAccept = apiRestClient.selectHeaderAccept(localVarAccepts); final String[] localVarContentTypes = {}; @@ -106,7 +111,7 @@ public ResponseEntity showTestByIdWithHttpInfo(Integer testId) t /** * DELETE /test/{testId}: Info for a specific test - * @param testId The id of the test to retrieve true + * @param testId The id of the test to retrieve (required) * @return No content response; (status code 204) * @throws RestClientException if an error occurs while attempting to invoke the API */ diff --git a/multiapi-engine/src/test/resources/openapigenerator/testRestrictionsSchema/assets/SchemaApi.java b/multiapi-engine/src/test/resources/openapigenerator/testRestrictionsSchema/assets/SchemaApi.java index 1898232e..db674f74 100644 --- a/multiapi-engine/src/test/resources/openapigenerator/testRestrictionsSchema/assets/SchemaApi.java +++ b/multiapi-engine/src/test/resources/openapigenerator/testRestrictionsSchema/assets/SchemaApi.java @@ -1,5 +1,6 @@ package com.sngular.multifileplugin.testRestrictionsSchema; +import java.util.String; import java.util.Optional; import java.util.List; import java.util.Map; diff --git a/multiapi-engine/src/test/resources/openapigenerator/testRestrictionsSchema/assets/SchemaMasterApi.java b/multiapi-engine/src/test/resources/openapigenerator/testRestrictionsSchema/assets/SchemaMasterApi.java index d84a9e88..517c8984 100644 --- a/multiapi-engine/src/test/resources/openapigenerator/testRestrictionsSchema/assets/SchemaMasterApi.java +++ b/multiapi-engine/src/test/resources/openapigenerator/testRestrictionsSchema/assets/SchemaMasterApi.java @@ -1,5 +1,6 @@ package com.sngular.multifileplugin.testRestrictionsSchema; +import java.util.String; import java.util.Optional; import java.util.List; import java.util.Map; diff --git a/multiapi-engine/src/test/resources/openapigenerator/testSimpleBuild/assets/V1Api.java b/multiapi-engine/src/test/resources/openapigenerator/testSimpleBuild/assets/V1Api.java index f554c83a..6e7d3148 100644 --- a/multiapi-engine/src/test/resources/openapigenerator/testSimpleBuild/assets/V1Api.java +++ b/multiapi-engine/src/test/resources/openapigenerator/testSimpleBuild/assets/V1Api.java @@ -1,5 +1,6 @@ package com.sngular.multifileplugin.testsimplebuild; +import java.util.String; import java.util.Optional; import java.util.List; import java.util.Map; diff --git a/multiapi-engine/src/test/resources/openapigenerator/testWebClientApiGeneration/assets/TestApi.java b/multiapi-engine/src/test/resources/openapigenerator/testWebClientApiGeneration/assets/TestApi.java index c10d2759..0268a469 100644 --- a/multiapi-engine/src/test/resources/openapigenerator/testWebClientApiGeneration/assets/TestApi.java +++ b/multiapi-engine/src/test/resources/openapigenerator/testWebClientApiGeneration/assets/TestApi.java @@ -5,7 +5,6 @@ import java.util.Map; import com.sngular.apigenerator.openapi.client.ApiWebClient; - import com.sngular.multifileplugin.webclientapi.model.ApiTestDTO; import com.sngular.multifileplugin.webclientapi.model.ApiErrorDTO; import com.sngular.multifileplugin.webclientapi.model.ApiTestInfoDTO; @@ -111,7 +110,7 @@ private ResponseSpec showTestByIdRequestCreation(Integer testId) throws WebClien /** * GET /test/{testId}: Info for a specific test - * @param testId The id of the test to retrieve true + * @param testId The id of the test to retrieve (required) * @return Expected response to a valid request; (status code 200) * @throws WebClientResponseException if an error occurs while attempting to invoke the API */ diff --git a/scs-multiapi-gradle-plugin/build.gradle b/scs-multiapi-gradle-plugin/build.gradle index 7744faed..699c6b00 100644 --- a/scs-multiapi-gradle-plugin/build.gradle +++ b/scs-multiapi-gradle-plugin/build.gradle @@ -20,7 +20,7 @@ repositories { } group = 'com.sngular' -version = '6.1.0' +version = '6.2.0' def SCSMultiApiPluginGroupId = group def SCSMultiApiPluginVersion = version @@ -30,7 +30,7 @@ dependencies { shadow localGroovy() shadow gradleApi() - implementation 'com.sngular:multiapi-engine:6.1.0' + implementation 'com.sngular:multiapi-engine:6.2.0' 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' @@ -99,7 +99,7 @@ testing { integrationTest(JvmTestSuite) { dependencies { - implementation 'com.sngular:scs-multiapi-gradle-plugin:6.1.0' + implementation 'com.sngular:scs-multiapi-gradle-plugin:6.2.0' implementation 'org.assertj:assertj-core:3.24.2' } diff --git a/scs-multiapi-maven-plugin/pom.xml b/scs-multiapi-maven-plugin/pom.xml index 8d451fa3..960520d5 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.1.0 + 6.2.0 maven-plugin AsyncApi - OpenApi Code Generator Maven Plugin @@ -271,7 +271,7 @@ com.sngular multiapi-engine - 6.1.0 + 6.2.0 org.apache.maven