diff --git a/multiapi-engine/pom.xml b/multiapi-engine/pom.xml index be065722..1f447e23 100644 --- a/multiapi-engine/pom.xml +++ b/multiapi-engine/pom.xml @@ -4,7 +4,7 @@ com.sngular multiapi-engine - 6.6.0 + 6.6.1 jar diff --git a/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/common/tools/ModelBuilder.java b/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/common/tools/ModelBuilder.java index 6a5c49f5..12679eaa 100644 --- a/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/common/tools/ModelBuilder.java +++ b/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/common/tools/ModelBuilder.java @@ -493,10 +493,11 @@ private static List processArray( .dataType(SchemaFieldObjectType.fromTypeList(TypeConstants.ARRAY, MapperUtil.getPojoName(fieldName, specFile))) .build()); } else { + final String itemType = ApiTool.isBinary(items) ? TypeConstants.MULTIPART_FILE : MapperUtil.getSimpleType(items, specFile); final SchemaFieldObject field = SchemaFieldObject .builder() .baseName(fieldName) - .dataType(SchemaFieldObjectType.fromTypeList(TypeConstants.ARRAY, MapperUtil.getSimpleType(items, specFile))) + .dataType(SchemaFieldObjectType.fromTypeList(TypeConstants.ARRAY, itemType)) .build(); fieldObjectArrayList.add(field); addPropertiesToFieldObject(field, schema); diff --git a/multiapi-engine/src/test/resources/openapigenerator/testSimpleBuild/api-rest.yaml b/multiapi-engine/src/test/resources/openapigenerator/testSimpleBuild/api-rest.yaml index 87a3cab8..b9ec41cd 100644 --- a/multiapi-engine/src/test/resources/openapigenerator/testSimpleBuild/api-rest.yaml +++ b/multiapi-engine/src/test/resources/openapigenerator/testSimpleBuild/api-rest.yaml @@ -522,6 +522,11 @@ components: type: string format: binary example: invoice01234.pdf + attachments: + type: array + items: + type: string + format: binary description: type: string example: Invoice for the sale 01234 diff --git a/multiapi-engine/src/test/resources/openapigenerator/testSimpleBuild/assets/model/DocumentDTO.java b/multiapi-engine/src/test/resources/openapigenerator/testSimpleBuild/assets/model/DocumentDTO.java index 47928e6c..21951656 100644 --- a/multiapi-engine/src/test/resources/openapigenerator/testSimpleBuild/assets/model/DocumentDTO.java +++ b/multiapi-engine/src/test/resources/openapigenerator/testSimpleBuild/assets/model/DocumentDTO.java @@ -2,7 +2,10 @@ import com.fasterxml.jackson.annotation.JsonProperty; import org.springframework.web.multipart.MultipartFile; +import java.util.List; +import java.util.ArrayList; import lombok.Builder; +import lombok.Singular; import lombok.Value; import lombok.extern.jackson.Jacksonized; @@ -12,14 +15,19 @@ public class DocumentDTO { @JsonProperty(value ="description") private String description; + @JsonProperty(value ="attachments") + @Singular("attachment") + private List attachments; + @JsonProperty(value ="document") private MultipartFile document; @Builder @Jacksonized - private DocumentDTO(String description, MultipartFile document) { + private DocumentDTO(String description, List attachments, MultipartFile document) { this.description = description; + this.attachments = attachments; this.document = document; } diff --git a/scs-multiapi-gradle-plugin/build.gradle b/scs-multiapi-gradle-plugin/build.gradle index 92bca8f8..3d8ecccf 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.6.0' +version = '6.6.1' def SCSMultiApiPluginGroupId = group def SCSMultiApiPluginVersion = version @@ -31,7 +31,7 @@ dependencies { shadow localGroovy() shadow gradleApi() - implementation 'com.sngular:multiapi-engine:6.6.0' + implementation 'com.sngular:multiapi-engine:6.6.1' 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.6.0' + implementation 'com.sngular:scs-multiapi-gradle-plugin:6.6.1' 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 b671b797..13c08fe2 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.6.0 + 6.6.1 maven-plugin AsyncApi - OpenApi Code Generator Maven Plugin @@ -271,7 +271,7 @@ com.sngular multiapi-engine - 6.6.0 + 6.6.1 org.apache.maven