From e732804a68cb6b38fdbce91ed137ed2ff19c9340 Mon Sep 17 00:00:00 2001 From: BrMtssk <70972152+BrMtssk@users.noreply.github.com> Date: Mon, 7 Dec 2020 05:27:33 -0300 Subject: [PATCH] [BUG][typescript-axios] Sets 'isCollectionFormatMulti' flag to true on multiple file uploads (#8105) * [typescript-axios] Sets 'isCollectionFormatMulti' to true on file uploads. Fixes #8104 * Safely checks if dateFormat is "binary" #8105 Co-authored-by: Bruno Matissek --- .../TypeScriptAxiosClientCodegen.java | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAxiosClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAxiosClientCodegen.java index 92edd26b582c..cbadf4844091 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAxiosClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptAxiosClientCodegen.java @@ -20,11 +20,7 @@ package org.openapitools.codegen.languages; import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.parser.util.SchemaTypeUtil; import org.apache.commons.lang3.StringUtils; -import org.openapitools.codegen.CliOption; -import org.openapitools.codegen.CodegenModel; -import org.openapitools.codegen.CodegenProperty; -import org.openapitools.codegen.CodegenOperation; -import org.openapitools.codegen.SupportingFile; +import org.openapitools.codegen.*; import org.openapitools.codegen.meta.features.DocumentationFeature; import org.openapitools.codegen.utils.ModelUtils; @@ -146,15 +142,18 @@ public class TypeScriptAxiosClientCodegen extends AbstractTypeScriptClientCodege .filter(op -> op.consumes.stream().anyMatch(opc -> opc.values().stream().anyMatch("multipart/form-data"::equals))) .forEach(op -> { op.vendorExtensions.putIfAbsent("multipartFormData", true); - op.allParams.stream() - .filter(param -> param.isFormParam) - .filter(param -> param.isArray) - .filter(param -> param.dataFormat.equals("binary")) - .forEach(param -> param.isCollectionFormatMulti = true); }); return objs; } + @Override + public void postProcessParameter(CodegenParameter parameter) { + super.postProcessParameter(parameter); + if (parameter.isFormParam && parameter.isArray && "binary".equals(parameter.dataFormat)) { + parameter.isCollectionFormatMulti = true; + } + } + @Override public Map postProcessAllModels(Map objs) { Map result = super.postProcessAllModels(objs);