diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java index a31cd39997f..883ad66ff7f 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AbstractTypeScriptClientCodegen.java @@ -122,6 +122,8 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp MapProperty mp = (MapProperty) p; Property inner = mp.getAdditionalProperties(); return "{ [key: string]: "+ getTypeDeclaration(inner) + "; }"; + } else if (p instanceof FileProperty) { + return "any"; } return super.getTypeDeclaration(p); } diff --git a/modules/swagger-codegen/src/main/resources/TypeScript-node/api.mustache b/modules/swagger-codegen/src/main/resources/TypeScript-node/api.mustache index 67b7d4fc3fa..098cd8bc1dc 100644 --- a/modules/swagger-codegen/src/main/resources/TypeScript-node/api.mustache +++ b/modules/swagger-codegen/src/main/resources/TypeScript-node/api.mustache @@ -67,6 +67,7 @@ export class {{classname}} { {{/pathParams}} var queryParameters: any = {}; var headerParams: any = {}; + var formParams: any = {}; {{#allParams}} {{#required}} @@ -87,19 +88,39 @@ export class {{classname}} { headerParams['{{paramName}}'] = {{paramName}}; {{/headerParams}} + var useFormData = false; + +{{#formParams}} + if ({{paramName}} !== undefined) { + formParams['{{paramName}}'] = {{paramName}}; + } +{{#isFile}} + useFormData = true; +{{/isFile}} + +{{/formParams}} var deferred = promise.defer<{ response: http.ClientResponse; {{#returnType}}body: {{{returnType}}}; {{/returnType}} }>(); - request({ + var requestOptions: any = { method: '{{httpMethod}}', qs: queryParameters, uri: path, json: true, - {{#bodyParam}}body: {{paramName}}, - {{/bodyParam}} +{{#bodyParam}} + body: {{paramName}}, +{{/bodyParam}} auth: { username: this.username, password: this.password } - }, (error, response, body) => { + } + + if (useFormData) { + requestOptions.formData = formParams; + } else { + requestOptions.form = formParams; + } + + request(requestOptions, (error, response, body) => { if (error) { deferred.reject(error); } else {