[typescript-axios] Fix multipart with file array (#7814)

* Force isCollectionFormatMulti in case of binary/file

* Manage multipartFormData in isCollectionFormatMulti

* Update petstore

Co-authored-by: Julien Herr <julien@nabu.io>
This commit is contained in:
Julien Herr 2020-10-27 08:58:08 +01:00 committed by GitHub
parent 4860eb65e1
commit 5d27799bad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 43 additions and 65 deletions

View File

@ -144,7 +144,14 @@ public class TypeScriptAxiosClientCodegen extends AbstractTypeScriptClientCodege
operations.stream()
.filter(op -> op.hasConsumes)
.filter(op -> op.consumes.stream().anyMatch(opc -> opc.values().stream().anyMatch("multipart/form-data"::equals)))
.forEach(op -> op.vendorExtensions.putIfAbsent("multipartFormData", true));
.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;
}

View File

@ -161,18 +161,17 @@ export const {{classname}}AxiosParamCreator = function (configuration?: Configur
if ({{paramName}}) {
{{#isCollectionFormatMulti}}
{{paramName}}.forEach((element) => {
localVarFormParams.append('{{baseName}}', element as any);
localVarFormParams.{{#multipartFormData}}append{{/multipartFormData}}{{^multipartFormData}}set{{/multipartFormData}}('{{baseName}}', element as any);
})
{{/isCollectionFormatMulti}}
{{^isCollectionFormatMulti}}{{^multipartFormData}}
localVarFormParams.set('{{baseName}}', {{paramName}}.join(COLLECTION_FORMATS.{{collectionFormat}}));{{/multipartFormData}}{{#multipartFormData}}
localVarFormParams.append('{{baseName}}', {{paramName}}.join(COLLECTION_FORMATS.{{collectionFormat}}));{{/multipartFormData}}
{{^isCollectionFormatMulti}}
localVarFormParams.{{#multipartFormData}}append{{/multipartFormData}}{{^multipartFormData}}set{{/multipartFormData}}({{paramName}}.join(COLLECTION_FORMATS.{{collectionFormat}});
{{/isCollectionFormatMulti}}
}{{/isArray}}
}
{{/isArray}}
{{^isArray}}
if ({{paramName}} !== undefined) { {{^multipartFormData}}
localVarFormParams.set('{{baseName}}', {{paramName}} as any);{{/multipartFormData}}{{#multipartFormData}}
localVarFormParams.append('{{baseName}}', {{paramName}} as any);{{/multipartFormData}}
if ({{paramName}} !== undefined) {
localVarFormParams.{{#multipartFormData}}append{{/multipartFormData}}{{^multipartFormData}}set{{/multipartFormData}}('{{baseName}}', {{paramName}} as any);
}
{{/isArray}}
{{/formParams}}{{/vendorExtensions}}

View File

@ -617,12 +617,10 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
localVarHeaderParameter["Authorization"] = "Bearer " + localVarAccessTokenValue;
}
if (name !== undefined) {
if (name !== undefined) {
localVarFormParams.set('name', name as any);
}
if (status !== undefined) {
if (status !== undefined) {
localVarFormParams.set('status', status as any);
}
@ -683,12 +681,10 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
localVarHeaderParameter["Authorization"] = "Bearer " + localVarAccessTokenValue;
}
if (additionalMetadata !== undefined) {
if (additionalMetadata !== undefined) {
localVarFormParams.append('additionalMetadata', additionalMetadata as any);
}
if (file !== undefined) {
if (file !== undefined) {
localVarFormParams.append('file', file as any);
}

View File

@ -617,12 +617,10 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
localVarHeaderParameter["Authorization"] = "Bearer " + localVarAccessTokenValue;
}
if (name !== undefined) {
if (name !== undefined) {
localVarFormParams.set('name', name as any);
}
if (status !== undefined) {
if (status !== undefined) {
localVarFormParams.set('status', status as any);
}
@ -683,12 +681,10 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
localVarHeaderParameter["Authorization"] = "Bearer " + localVarAccessTokenValue;
}
if (additionalMetadata !== undefined) {
if (additionalMetadata !== undefined) {
localVarFormParams.append('additionalMetadata', additionalMetadata as any);
}
if (file !== undefined) {
if (file !== undefined) {
localVarFormParams.append('file', file as any);
}

View File

@ -666,12 +666,10 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
localVarHeaderParameter["Authorization"] = "Bearer " + localVarAccessTokenValue;
}
if (name !== undefined) {
if (name !== undefined) {
localVarFormParams.set('name', name as any);
}
if (status !== undefined) {
if (status !== undefined) {
localVarFormParams.set('status', status as any);
}
@ -732,12 +730,10 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
localVarHeaderParameter["Authorization"] = "Bearer " + localVarAccessTokenValue;
}
if (additionalMetadata !== undefined) {
if (additionalMetadata !== undefined) {
localVarFormParams.append('additionalMetadata', additionalMetadata as any);
}
if (file !== undefined) {
if (file !== undefined) {
localVarFormParams.append('file', file as any);
}

View File

@ -617,12 +617,10 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
localVarHeaderParameter["Authorization"] = "Bearer " + localVarAccessTokenValue;
}
if (name !== undefined) {
if (name !== undefined) {
localVarFormParams.set('name', name as any);
}
if (status !== undefined) {
if (status !== undefined) {
localVarFormParams.set('status', status as any);
}
@ -683,12 +681,10 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
localVarHeaderParameter["Authorization"] = "Bearer " + localVarAccessTokenValue;
}
if (additionalMetadata !== undefined) {
if (additionalMetadata !== undefined) {
localVarFormParams.append('additionalMetadata', additionalMetadata as any);
}
if (file !== undefined) {
if (file !== undefined) {
localVarFormParams.append('file', file as any);
}

View File

@ -393,12 +393,10 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
localVarHeaderParameter["Authorization"] = "Bearer " + localVarAccessTokenValue;
}
if (name !== undefined) {
if (name !== undefined) {
localVarFormParams.set('name', name as any);
}
if (status !== undefined) {
if (status !== undefined) {
localVarFormParams.set('status', status as any);
}
@ -459,12 +457,10 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
localVarHeaderParameter["Authorization"] = "Bearer " + localVarAccessTokenValue;
}
if (additionalMetadata !== undefined) {
if (additionalMetadata !== undefined) {
localVarFormParams.append('additionalMetadata', additionalMetadata as any);
}
if (file !== undefined) {
if (file !== undefined) {
localVarFormParams.append('file', file as any);
}

View File

@ -617,12 +617,10 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
localVarHeaderParameter["Authorization"] = "Bearer " + localVarAccessTokenValue;
}
if (name !== undefined) {
if (name !== undefined) {
localVarFormParams.set('name', name as any);
}
if (status !== undefined) {
if (status !== undefined) {
localVarFormParams.set('status', status as any);
}
@ -683,12 +681,10 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
localVarHeaderParameter["Authorization"] = "Bearer " + localVarAccessTokenValue;
}
if (additionalMetadata !== undefined) {
if (additionalMetadata !== undefined) {
localVarFormParams.append('additionalMetadata', additionalMetadata as any);
}
if (file !== undefined) {
if (file !== undefined) {
localVarFormParams.append('file', file as any);
}

View File

@ -617,12 +617,10 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
localVarHeaderParameter["Authorization"] = "Bearer " + localVarAccessTokenValue;
}
if (name !== undefined) {
if (name !== undefined) {
localVarFormParams.set('name', name as any);
}
if (status !== undefined) {
if (status !== undefined) {
localVarFormParams.set('status', status as any);
}
@ -683,12 +681,10 @@ export const PetApiAxiosParamCreator = function (configuration?: Configuration)
localVarHeaderParameter["Authorization"] = "Bearer " + localVarAccessTokenValue;
}
if (additionalMetadata !== undefined) {
if (additionalMetadata !== undefined) {
localVarFormParams.append('additionalMetadata', additionalMetadata as any);
}
if (file !== undefined) {
if (file !== undefined) {
localVarFormParams.append('file', file as any);
}