From 1cd81416459c48d09197e5cf54af47b65189dbb4 Mon Sep 17 00:00:00 2001 From: Laurent Van der Linden Date: Tue, 22 Sep 2015 08:37:49 +0200 Subject: [PATCH 1/2] implement form parameter support using Angular $httpParamSerializer --- .../io/swagger/codegen/CodegenOperation.java | 9 +++++++++ .../resources/TypeScript-Angular/api.mustache | 19 ++++++++++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenOperation.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenOperation.java index 6eae2c6f0f58..373c5b2b7857 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenOperation.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenOperation.java @@ -77,4 +77,13 @@ public class CodegenOperation { return nonempty(pathParams); } + /** + * Check if there's at least one form parameter + * + * @return true if any form parameter exists, false otherwise + */ + public boolean getHasFormParams() { + return nonempty(formParams); + } + } diff --git a/modules/swagger-codegen/src/main/resources/TypeScript-Angular/api.mustache b/modules/swagger-codegen/src/main/resources/TypeScript-Angular/api.mustache index f08e66333755..80ed286cea10 100644 --- a/modules/swagger-codegen/src/main/resources/TypeScript-Angular/api.mustache +++ b/modules/swagger-codegen/src/main/resources/TypeScript-Angular/api.mustache @@ -14,9 +14,9 @@ module {{package}} { export class {{classname}} { private basePath = '{{basePath}}'; - static $inject: string[] = ['$http']; + static $inject: string[] = ['$http', '$httpParamSerializer']; - constructor(private $http: ng.IHttpService, basePath?: string) { + constructor(private $http: ng.IHttpService, private $httpParamSerializer: (any) => any, basePath?: string) { if (basePath) { this.basePath = basePath; } @@ -32,7 +32,10 @@ module {{package}} { {{/pathParams}} var queryParameters: any = {}; var headerParams: any = {}; +{{#hasFormParams}} + var formParams: any = {}; +{{/hasFormParams}} {{#allParams}} {{#required}} // verify required parameter '{{paramName}}' is set @@ -52,12 +55,22 @@ module {{package}} { headerParams['{{baseName}}'] = {{paramName}}; {{/headerParams}} +{{#hasFormParams}} + headerParams['Content-Type'] = 'application/x-www-form-urlencoded'; + +{{/hasFormParams}} +{{#formParams}} + formParams['{{baseName}}'] = {{paramName}}; + +{{/formParams}} var httpRequestParams: any = { method: '{{httpMethod}}', url: path, - json: true, + json: {{#hasFormParams}}false{{/hasFormParams}}{{^hasFormParams}}true{{/hasFormParams}}, {{#bodyParam}}data: {{paramName}}, {{/bodyParam}} + {{#hasFormParams}}data: this.$httpParamSerializer(formParams), + {{/hasFormParams}} params: queryParameters, headers: headerParams }; From 61690d625f28d89196c1bd3e86667f4d287a2ad0 Mon Sep 17 00:00:00 2001 From: Laurent Van der Linden Date: Tue, 22 Sep 2015 09:20:52 +0200 Subject: [PATCH 2/2] change the constructor signature to be backwards compatible update petstore samples for angular and node --- .../resources/TypeScript-Angular/api.mustache | 2 +- .../typescript-angular/API/Client/PetApi.ts | 40 +- .../typescript-angular/API/Client/StoreApi.ts | 12 +- .../typescript-angular/API/Client/UserApi.ts | 20 +- .../typescript-angular/API/Client/api.d.ts | 2 +- .../client/petstore/typescript-node/api.ts | 462 +++++++++--------- 6 files changed, 268 insertions(+), 270 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/TypeScript-Angular/api.mustache b/modules/swagger-codegen/src/main/resources/TypeScript-Angular/api.mustache index 80ed286cea10..233ead8bee48 100644 --- a/modules/swagger-codegen/src/main/resources/TypeScript-Angular/api.mustache +++ b/modules/swagger-codegen/src/main/resources/TypeScript-Angular/api.mustache @@ -16,7 +16,7 @@ module {{package}} { static $inject: string[] = ['$http', '$httpParamSerializer']; - constructor(private $http: ng.IHttpService, private $httpParamSerializer: (any) => any, basePath?: string) { + constructor(private $http: ng.IHttpService, basePath?: string, private $httpParamSerializer?: (any) => any) { if (basePath) { this.basePath = basePath; } diff --git a/samples/client/petstore/typescript-angular/API/Client/PetApi.ts b/samples/client/petstore/typescript-angular/API/Client/PetApi.ts index 3189f6166e42..b8eb8c3ae12e 100644 --- a/samples/client/petstore/typescript-angular/API/Client/PetApi.ts +++ b/samples/client/petstore/typescript-angular/API/Client/PetApi.ts @@ -8,9 +8,9 @@ module API.Client { export class PetApi { private basePath = 'http://petstore.swagger.io/v2'; - static $inject: string[] = ['$http']; + static $inject: string[] = ['$http', '$httpParamSerializer']; - constructor(private $http: ng.IHttpService, basePath?: string) { + constructor(private $http: ng.IHttpService, basePath?: string, private $httpParamSerializer?: (any) => any) { if (basePath) { this.basePath = basePath; } @@ -21,13 +21,13 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; - var httpRequestParams: any = { method: 'PUT', url: path, json: true, data: body, + params: queryParameters, headers: headerParams }; @@ -48,13 +48,13 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; - var httpRequestParams: any = { method: 'POST', url: path, json: true, data: body, + params: queryParameters, headers: headerParams }; @@ -75,7 +75,6 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; - if (status !== undefined) { queryParameters['status'] = status; } @@ -85,6 +84,7 @@ module API.Client { url: path, json: true, + params: queryParameters, headers: headerParams }; @@ -105,7 +105,6 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; - if (tags !== undefined) { queryParameters['tags'] = tags; } @@ -115,6 +114,7 @@ module API.Client { url: path, json: true, + params: queryParameters, headers: headerParams }; @@ -137,7 +137,6 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; - // verify required parameter 'petId' is set if (!petId) { throw new Error('Missing required parameter petId when calling getPetById'); @@ -148,6 +147,7 @@ module API.Client { url: path, json: true, + params: queryParameters, headers: headerParams }; @@ -170,16 +170,25 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; + var formParams: any = {}; // verify required parameter 'petId' is set if (!petId) { throw new Error('Missing required parameter petId when calling updatePetWithForm'); } + headerParams['Content-Type'] = 'application/x-www-form-urlencoded'; + + formParams['name'] = name; + + formParams['status'] = status; + var httpRequestParams: any = { method: 'POST', url: path, - json: true, + json: false, + + data: this.$httpParamSerializer(formParams), params: queryParameters, headers: headerParams @@ -203,19 +212,19 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; - // verify required parameter 'petId' is set if (!petId) { throw new Error('Missing required parameter petId when calling deletePet'); } - headerParams['apiKey'] = apiKey; + headerParams['api_key'] = apiKey; var httpRequestParams: any = { method: 'DELETE', url: path, json: true, + params: queryParameters, headers: headerParams }; @@ -238,16 +247,25 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; + var formParams: any = {}; // verify required parameter 'petId' is set if (!petId) { throw new Error('Missing required parameter petId when calling uploadFile'); } + headerParams['Content-Type'] = 'application/x-www-form-urlencoded'; + + formParams['additionalMetadata'] = additionalMetadata; + + formParams['file'] = file; + var httpRequestParams: any = { method: 'POST', url: path, - json: true, + json: false, + + data: this.$httpParamSerializer(formParams), params: queryParameters, headers: headerParams diff --git a/samples/client/petstore/typescript-angular/API/Client/StoreApi.ts b/samples/client/petstore/typescript-angular/API/Client/StoreApi.ts index 443ea5d0c589..739f6039e6c5 100644 --- a/samples/client/petstore/typescript-angular/API/Client/StoreApi.ts +++ b/samples/client/petstore/typescript-angular/API/Client/StoreApi.ts @@ -8,9 +8,9 @@ module API.Client { export class StoreApi { private basePath = 'http://petstore.swagger.io/v2'; - static $inject: string[] = ['$http']; + static $inject: string[] = ['$http', '$httpParamSerializer']; - constructor(private $http: ng.IHttpService, basePath?: string) { + constructor(private $http: ng.IHttpService, basePath?: string, private $httpParamSerializer?: (any) => any) { if (basePath) { this.basePath = basePath; } @@ -21,12 +21,12 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; - var httpRequestParams: any = { method: 'GET', url: path, json: true, + params: queryParameters, headers: headerParams }; @@ -47,13 +47,13 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; - var httpRequestParams: any = { method: 'POST', url: path, json: true, data: body, + params: queryParameters, headers: headerParams }; @@ -76,7 +76,6 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; - // verify required parameter 'orderId' is set if (!orderId) { throw new Error('Missing required parameter orderId when calling getOrderById'); @@ -87,6 +86,7 @@ module API.Client { url: path, json: true, + params: queryParameters, headers: headerParams }; @@ -109,7 +109,6 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; - // verify required parameter 'orderId' is set if (!orderId) { throw new Error('Missing required parameter orderId when calling deleteOrder'); @@ -120,6 +119,7 @@ module API.Client { url: path, json: true, + params: queryParameters, headers: headerParams }; diff --git a/samples/client/petstore/typescript-angular/API/Client/UserApi.ts b/samples/client/petstore/typescript-angular/API/Client/UserApi.ts index aaf2ef81bb15..26ebd693db94 100644 --- a/samples/client/petstore/typescript-angular/API/Client/UserApi.ts +++ b/samples/client/petstore/typescript-angular/API/Client/UserApi.ts @@ -8,9 +8,9 @@ module API.Client { export class UserApi { private basePath = 'http://petstore.swagger.io/v2'; - static $inject: string[] = ['$http']; + static $inject: string[] = ['$http', '$httpParamSerializer']; - constructor(private $http: ng.IHttpService, basePath?: string) { + constructor(private $http: ng.IHttpService, basePath?: string, private $httpParamSerializer?: (any) => any) { if (basePath) { this.basePath = basePath; } @@ -21,13 +21,13 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; - var httpRequestParams: any = { method: 'POST', url: path, json: true, data: body, + params: queryParameters, headers: headerParams }; @@ -48,13 +48,13 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; - var httpRequestParams: any = { method: 'POST', url: path, json: true, data: body, + params: queryParameters, headers: headerParams }; @@ -75,13 +75,13 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; - var httpRequestParams: any = { method: 'POST', url: path, json: true, data: body, + params: queryParameters, headers: headerParams }; @@ -102,7 +102,6 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; - if (username !== undefined) { queryParameters['username'] = username; } @@ -116,6 +115,7 @@ module API.Client { url: path, json: true, + params: queryParameters, headers: headerParams }; @@ -136,12 +136,12 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; - var httpRequestParams: any = { method: 'GET', url: path, json: true, + params: queryParameters, headers: headerParams }; @@ -164,7 +164,6 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; - // verify required parameter 'username' is set if (!username) { throw new Error('Missing required parameter username when calling getUserByName'); @@ -175,6 +174,7 @@ module API.Client { url: path, json: true, + params: queryParameters, headers: headerParams }; @@ -197,7 +197,6 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; - // verify required parameter 'username' is set if (!username) { throw new Error('Missing required parameter username when calling updateUser'); @@ -209,6 +208,7 @@ module API.Client { json: true, data: body, + params: queryParameters, headers: headerParams }; @@ -231,7 +231,6 @@ module API.Client { var queryParameters: any = {}; var headerParams: any = {}; - // verify required parameter 'username' is set if (!username) { throw new Error('Missing required parameter username when calling deleteUser'); @@ -242,6 +241,7 @@ module API.Client { url: path, json: true, + params: queryParameters, headers: headerParams }; diff --git a/samples/client/petstore/typescript-angular/API/Client/api.d.ts b/samples/client/petstore/typescript-angular/API/Client/api.d.ts index 19c60623dc94..46123a07ad33 100644 --- a/samples/client/petstore/typescript-angular/API/Client/api.d.ts +++ b/samples/client/petstore/typescript-angular/API/Client/api.d.ts @@ -5,5 +5,5 @@ /// /// -/// /// +/// diff --git a/samples/client/petstore/typescript-node/api.ts b/samples/client/petstore/typescript-node/api.ts index 148782a4000a..742169a608e6 100644 --- a/samples/client/petstore/typescript-node/api.ts +++ b/samples/client/petstore/typescript-node/api.ts @@ -149,7 +149,6 @@ export class UserApi { var headerParams: any = {}; var formParams: any = {}; - var useFormData = false; var deferred = promise.defer<{ response: http.ClientResponse; }>(); @@ -195,7 +194,6 @@ export class UserApi { var headerParams: any = {}; var formParams: any = {}; - var useFormData = false; var deferred = promise.defer<{ response: http.ClientResponse; }>(); @@ -241,7 +239,6 @@ export class UserApi { var headerParams: any = {}; var formParams: any = {}; - var useFormData = false; var deferred = promise.defer<{ response: http.ClientResponse; }>(); @@ -287,7 +284,6 @@ export class UserApi { var headerParams: any = {}; var formParams: any = {}; - if (username !== undefined) { queryParameters['username'] = username; } @@ -340,7 +336,6 @@ export class UserApi { var headerParams: any = {}; var formParams: any = {}; - var useFormData = false; var deferred = promise.defer<{ response: http.ClientResponse; }>(); @@ -387,7 +382,6 @@ export class UserApi { var headerParams: any = {}; var formParams: any = {}; - // verify required parameter 'username' is set if (!username) { throw new Error('Missing required parameter username when calling getUserByName'); @@ -439,7 +433,6 @@ export class UserApi { var headerParams: any = {}; var formParams: any = {}; - // verify required parameter 'username' is set if (!username) { throw new Error('Missing required parameter username when calling updateUser'); @@ -492,7 +485,6 @@ export class UserApi { var headerParams: any = {}; var formParams: any = {}; - // verify required parameter 'username' is set if (!username) { throw new Error('Missing required parameter username when calling deleteUser'); @@ -535,6 +527,224 @@ export class UserApi { return deferred.promise; } } +export class StoreApi { + private basePath = 'http://petstore.swagger.io/v2'; + public authentications = { + 'default': new VoidAuth(), + 'api_key': new ApiKeyAuth('header', 'api_key'), + 'petstore_auth': new OAuth(), + } + + constructor(url: string, basePath?: string); + constructor(private url: string, basePathOrUsername: string, password?: string, basePath?: string) { + if (password) { + if (basePath) { + this.basePath = basePath; + } + } else { + if (basePathOrUsername) { + this.basePath = basePathOrUsername + } + } + } + + set apiKey(key: string) { + this.authentications.api_key.apiKey = key; + } + + public getInventory () : Promise<{ response: http.ClientResponse; body: { [key: string]: number; }; }> { + var path = this.url + this.basePath + '/store/inventory'; + + var queryParameters: any = {}; + var headerParams: any = {}; + var formParams: any = {}; + + var useFormData = false; + + var deferred = promise.defer<{ response: http.ClientResponse; body: { [key: string]: number; }; }>(); + + var requestOptions: request.Options = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: path, + json: true, + } + + this.authentications.api_key.applyToRequest(requestOptions); + + this.authentications.default.applyToRequest(requestOptions); + + if (Object.keys(formParams).length) { + if (useFormData) { + (requestOptions).formData = formParams; + } else { + requestOptions.form = formParams; + } + } + + request(requestOptions, (error, response, body) => { + if (error) { + deferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + deferred.resolve({ response: response, body: body }); + } else { + deferred.reject({ response: response, body: body }); + } + } + }); + + return deferred.promise; + } + + public placeOrder (body?: Order) : Promise<{ response: http.ClientResponse; body: Order; }> { + var path = this.url + this.basePath + '/store/order'; + + var queryParameters: any = {}; + var headerParams: any = {}; + var formParams: any = {}; + + var useFormData = false; + + var deferred = promise.defer<{ response: http.ClientResponse; body: Order; }>(); + + var requestOptions: request.Options = { + method: 'POST', + qs: queryParameters, + headers: headerParams, + uri: path, + json: true, + body: body, + } + + this.authentications.default.applyToRequest(requestOptions); + + if (Object.keys(formParams).length) { + if (useFormData) { + (requestOptions).formData = formParams; + } else { + requestOptions.form = formParams; + } + } + + request(requestOptions, (error, response, body) => { + if (error) { + deferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + deferred.resolve({ response: response, body: body }); + } else { + deferred.reject({ response: response, body: body }); + } + } + }); + + return deferred.promise; + } + + public getOrderById (orderId: string) : Promise<{ response: http.ClientResponse; body: Order; }> { + var path = this.url + this.basePath + '/store/order/{orderId}'; + + path = path.replace('{' + 'orderId' + '}', String(orderId)); + + var queryParameters: any = {}; + var headerParams: any = {}; + var formParams: any = {}; + + // verify required parameter 'orderId' is set + if (!orderId) { + throw new Error('Missing required parameter orderId when calling getOrderById'); + } + + var useFormData = false; + + var deferred = promise.defer<{ response: http.ClientResponse; body: Order; }>(); + + var requestOptions: request.Options = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: path, + json: true, + } + + this.authentications.default.applyToRequest(requestOptions); + + if (Object.keys(formParams).length) { + if (useFormData) { + (requestOptions).formData = formParams; + } else { + requestOptions.form = formParams; + } + } + + request(requestOptions, (error, response, body) => { + if (error) { + deferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + deferred.resolve({ response: response, body: body }); + } else { + deferred.reject({ response: response, body: body }); + } + } + }); + + return deferred.promise; + } + + public deleteOrder (orderId: string) : Promise<{ response: http.ClientResponse; }> { + var path = this.url + this.basePath + '/store/order/{orderId}'; + + path = path.replace('{' + 'orderId' + '}', String(orderId)); + + var queryParameters: any = {}; + var headerParams: any = {}; + var formParams: any = {}; + + // verify required parameter 'orderId' is set + if (!orderId) { + throw new Error('Missing required parameter orderId when calling deleteOrder'); + } + + var useFormData = false; + + var deferred = promise.defer<{ response: http.ClientResponse; }>(); + + var requestOptions: request.Options = { + method: 'DELETE', + qs: queryParameters, + headers: headerParams, + uri: path, + json: true, + } + + this.authentications.default.applyToRequest(requestOptions); + + if (Object.keys(formParams).length) { + if (useFormData) { + (requestOptions).formData = formParams; + } else { + requestOptions.form = formParams; + } + } + + request(requestOptions, (error, response, body) => { + if (error) { + deferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + deferred.resolve({ response: response, body: body }); + } else { + deferred.reject({ response: response, body: body }); + } + } + }); + + return deferred.promise; + } +} export class PetApi { private basePath = 'http://petstore.swagger.io/v2'; public authentications = { @@ -567,7 +777,6 @@ export class PetApi { var headerParams: any = {}; var formParams: any = {}; - var useFormData = false; var deferred = promise.defer<{ response: http.ClientResponse; }>(); @@ -615,7 +824,6 @@ export class PetApi { var headerParams: any = {}; var formParams: any = {}; - var useFormData = false; var deferred = promise.defer<{ response: http.ClientResponse; }>(); @@ -663,7 +871,6 @@ export class PetApi { var headerParams: any = {}; var formParams: any = {}; - if (status !== undefined) { queryParameters['status'] = status; } @@ -714,7 +921,6 @@ export class PetApi { var headerParams: any = {}; var formParams: any = {}; - if (tags !== undefined) { queryParameters['tags'] = tags; } @@ -767,7 +973,6 @@ export class PetApi { var headerParams: any = {}; var formParams: any = {}; - // verify required parameter 'petId' is set if (!petId) { throw new Error('Missing required parameter petId when calling getPetById'); @@ -785,10 +990,10 @@ export class PetApi { json: true, } - this.authentications.api_key.applyToRequest(requestOptions); - this.authentications.petstore_auth.applyToRequest(requestOptions); + this.authentications.api_key.applyToRequest(requestOptions); + this.authentications.default.applyToRequest(requestOptions); if (Object.keys(formParams).length) { @@ -823,7 +1028,6 @@ export class PetApi { var headerParams: any = {}; var formParams: any = {}; - // verify required parameter 'petId' is set if (!petId) { throw new Error('Missing required parameter petId when calling updatePetWithForm'); @@ -885,13 +1089,12 @@ export class PetApi { var headerParams: any = {}; var formParams: any = {}; - // verify required parameter 'petId' is set if (!petId) { throw new Error('Missing required parameter petId when calling deletePet'); } - headerParams['api_key'] = apiKey; + headerParams['apiKey'] = apiKey; var useFormData = false; @@ -941,7 +1144,6 @@ export class PetApi { var headerParams: any = {}; var formParams: any = {}; - // verify required parameter 'petId' is set if (!petId) { throw new Error('Missing required parameter petId when calling uploadFile'); @@ -995,225 +1197,3 @@ export class PetApi { return deferred.promise; } } -export class StoreApi { - private basePath = 'http://petstore.swagger.io/v2'; - public authentications = { - 'default': new VoidAuth(), - 'api_key': new ApiKeyAuth('header', 'api_key'), - 'petstore_auth': new OAuth(), - } - - constructor(url: string, basePath?: string); - constructor(private url: string, basePathOrUsername: string, password?: string, basePath?: string) { - if (password) { - if (basePath) { - this.basePath = basePath; - } - } else { - if (basePathOrUsername) { - this.basePath = basePathOrUsername - } - } - } - - set apiKey(key: string) { - this.authentications.api_key.apiKey = key; - } - - public getInventory () : Promise<{ response: http.ClientResponse; body: { [key: string]: number; }; }> { - var path = this.url + this.basePath + '/store/inventory'; - - var queryParameters: any = {}; - var headerParams: any = {}; - var formParams: any = {}; - - - var useFormData = false; - - var deferred = promise.defer<{ response: http.ClientResponse; body: { [key: string]: number; }; }>(); - - var requestOptions: request.Options = { - method: 'GET', - qs: queryParameters, - headers: headerParams, - uri: path, - json: true, - } - - this.authentications.api_key.applyToRequest(requestOptions); - - this.authentications.default.applyToRequest(requestOptions); - - if (Object.keys(formParams).length) { - if (useFormData) { - (requestOptions).formData = formParams; - } else { - requestOptions.form = formParams; - } - } - - request(requestOptions, (error, response, body) => { - if (error) { - deferred.reject(error); - } else { - if (response.statusCode >= 200 && response.statusCode <= 299) { - deferred.resolve({ response: response, body: body }); - } else { - deferred.reject({ response: response, body: body }); - } - } - }); - - return deferred.promise; - } - - public placeOrder (body?: Order) : Promise<{ response: http.ClientResponse; body: Order; }> { - var path = this.url + this.basePath + '/store/order'; - - var queryParameters: any = {}; - var headerParams: any = {}; - var formParams: any = {}; - - - var useFormData = false; - - var deferred = promise.defer<{ response: http.ClientResponse; body: Order; }>(); - - var requestOptions: request.Options = { - method: 'POST', - qs: queryParameters, - headers: headerParams, - uri: path, - json: true, - body: body, - } - - this.authentications.default.applyToRequest(requestOptions); - - if (Object.keys(formParams).length) { - if (useFormData) { - (requestOptions).formData = formParams; - } else { - requestOptions.form = formParams; - } - } - - request(requestOptions, (error, response, body) => { - if (error) { - deferred.reject(error); - } else { - if (response.statusCode >= 200 && response.statusCode <= 299) { - deferred.resolve({ response: response, body: body }); - } else { - deferred.reject({ response: response, body: body }); - } - } - }); - - return deferred.promise; - } - - public getOrderById (orderId: string) : Promise<{ response: http.ClientResponse; body: Order; }> { - var path = this.url + this.basePath + '/store/order/{orderId}'; - - path = path.replace('{' + 'orderId' + '}', String(orderId)); - - var queryParameters: any = {}; - var headerParams: any = {}; - var formParams: any = {}; - - - // verify required parameter 'orderId' is set - if (!orderId) { - throw new Error('Missing required parameter orderId when calling getOrderById'); - } - - var useFormData = false; - - var deferred = promise.defer<{ response: http.ClientResponse; body: Order; }>(); - - var requestOptions: request.Options = { - method: 'GET', - qs: queryParameters, - headers: headerParams, - uri: path, - json: true, - } - - this.authentications.default.applyToRequest(requestOptions); - - if (Object.keys(formParams).length) { - if (useFormData) { - (requestOptions).formData = formParams; - } else { - requestOptions.form = formParams; - } - } - - request(requestOptions, (error, response, body) => { - if (error) { - deferred.reject(error); - } else { - if (response.statusCode >= 200 && response.statusCode <= 299) { - deferred.resolve({ response: response, body: body }); - } else { - deferred.reject({ response: response, body: body }); - } - } - }); - - return deferred.promise; - } - - public deleteOrder (orderId: string) : Promise<{ response: http.ClientResponse; }> { - var path = this.url + this.basePath + '/store/order/{orderId}'; - - path = path.replace('{' + 'orderId' + '}', String(orderId)); - - var queryParameters: any = {}; - var headerParams: any = {}; - var formParams: any = {}; - - - // verify required parameter 'orderId' is set - if (!orderId) { - throw new Error('Missing required parameter orderId when calling deleteOrder'); - } - - var useFormData = false; - - var deferred = promise.defer<{ response: http.ClientResponse; }>(); - - var requestOptions: request.Options = { - method: 'DELETE', - qs: queryParameters, - headers: headerParams, - uri: path, - json: true, - } - - this.authentications.default.applyToRequest(requestOptions); - - if (Object.keys(formParams).length) { - if (useFormData) { - (requestOptions).formData = formParams; - } else { - requestOptions.form = formParams; - } - } - - request(requestOptions, (error, response, body) => { - if (error) { - deferred.reject(error); - } else { - if (response.statusCode >= 200 && response.statusCode <= 299) { - deferred.resolve({ response: response, body: body }); - } else { - deferred.reject({ response: response, body: body }); - } - } - }); - - return deferred.promise; - } -}