diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptAngularClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptAngularClientCodegen.java index 4747b8bba88..6c9b615476d 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptAngularClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/TypeScriptAngularClientCodegen.java @@ -4,7 +4,7 @@ import io.swagger.codegen.SupportingFile; import java.io.File; public class TypeScriptAngularClientCodegen extends AbstractTypeScriptClientCodegen { - + @Override public String getName() { return "typescript-angular"; 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 b49026b8991..000ed2707b3 100644 --- a/modules/swagger-codegen/src/main/resources/TypeScript-Angular/api.mustache +++ b/modules/swagger-codegen/src/main/resources/TypeScript-Angular/api.mustache @@ -12,12 +12,12 @@ namespace {{package}} { */ {{/description}} export class {{classname}} { - private basePath = '{{basePath}}'; + protected basePath = '{{basePath}}'; public defaultHeaders : any = {}; static $inject: string[] = ['$http', '$httpParamSerializer']; - constructor(private $http: ng.IHttpService, basePath?: string, private $httpParamSerializer?: (d: any) => any) { + constructor(protected $http: ng.IHttpService, protected $httpParamSerializer?: (d: any) => any, basePath?: string) { if (basePath) { this.basePath = basePath; } @@ -68,7 +68,7 @@ namespace {{package}} { {{/hasFormParams}} {{#formParams}} formParams['{{baseName}}'] = {{paramName}}; - + {{/formParams}} let httpRequestParams: any = { method: '{{httpMethod}}', diff --git a/modules/swagger-codegen/src/main/resources/TypeScript-Angular/model.mustache b/modules/swagger-codegen/src/main/resources/TypeScript-Angular/model.mustache index 5b57ed4dc94..4096e078518 100644 --- a/modules/swagger-codegen/src/main/resources/TypeScript-Angular/model.mustache +++ b/modules/swagger-codegen/src/main/resources/TypeScript-Angular/model.mustache @@ -27,7 +27,7 @@ namespace {{package}} { {{#vars}} {{#isEnum}} - export enum {{datatypeWithEnum}} { {{#allowableValues}}{{#values}} + export enum {{datatypeWithEnum}} { {{#allowableValues}}{{#values}} {{.}} = '{{.}}',{{/values}}{{/allowableValues}} } {{/isEnum}} @@ -36,4 +36,4 @@ namespace {{package}} { {{/hasEnums}} {{/model}} {{/models}} -} \ No newline at end of file +} 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 4d03ae0f424..e2a440bb846 100644 --- a/modules/swagger-codegen/src/main/resources/TypeScript-node/api.mustache +++ b/modules/swagger-codegen/src/main/resources/TypeScript-node/api.mustache @@ -95,7 +95,11 @@ class VoidAuth implements Authentication { */ {{/description}} export class {{classname}} { - private basePath = '{{basePath}}'; + protected basePath = '{{basePath}}'; + protected defaultHeaders : any = {}; + + + public authentications = { 'default': new VoidAuth(), {{#authMethods}} @@ -154,17 +158,21 @@ export class {{classname}} { {{#isOAuth}} {{/isOAuth}} {{/authMethods}} + private extendObj(objA: T1, objB: T2) { + for(let key in objB){ + if(objB.hasOwnProperty(key)){ + objA[key] = objB[key]; + } + } + return objA; + } {{#operation}} - public {{nickname}} ({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) : Promise<{ response: http.ClientResponse; {{#returnType}}body: {{{returnType}}}; {{/returnType}} }> { - let path = this.url + this.basePath + '{{path}}'; - -{{#pathParams}} - path = path.replace('{' + '{{baseName}}' + '}', String({{paramName}})); - -{{/pathParams}} + public {{nickname}} ({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) : Promise<{ response: http.ClientResponse; {{#returnType}}body: {{{returnType}}}; {{/returnType}}{{^returnType}}body?: any; {{/returnType}} }> { + const path = this.url + this.basePath + '{{path}}'{{#pathParams}} + .replace('{' + '{{baseName}}' + '}', String({{paramName}})){{/pathParams}}; let queryParameters: any = {}; - let headerParams: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); let formParams: any = {}; {{#allParams}}{{#required}} @@ -194,7 +202,7 @@ export class {{classname}} { {{/isFile}} {{/formParams}} - let deferred = promise.defer<{ response: http.ClientResponse; {{#returnType}}body: {{{returnType}}}; {{/returnType}} }>(); + let deferred = promise.defer<{ response: http.ClientResponse; {{#returnType}}body: {{{returnType}}}; {{/returnType}}{{^returnType}}body?: any; {{/returnType}} }>(); let requestOptions: request.Options = { method: '{{httpMethod}}', diff --git a/samples/client/petstore/typescript-angular/API/Client/Category.ts b/samples/client/petstore/typescript-angular/API/Client/Category.ts index 7faf87208eb..532d9bb0856 100644 --- a/samples/client/petstore/typescript-angular/API/Client/Category.ts +++ b/samples/client/petstore/typescript-angular/API/Client/Category.ts @@ -1,13 +1,24 @@ /// -module API.Client { +namespace API.Client { 'use strict'; - export class Category { + + + + export interface Category { + + id: number; + + name: string; + } -} \ No newline at end of file + + + +} diff --git a/samples/client/petstore/typescript-angular/API/Client/Order.ts b/samples/client/petstore/typescript-angular/API/Client/Order.ts index abee3a2894b..11a0fafe293 100644 --- a/samples/client/petstore/typescript-angular/API/Client/Order.ts +++ b/samples/client/petstore/typescript-angular/API/Client/Order.ts @@ -1,32 +1,67 @@ /// -module API.Client { +namespace API.Client { 'use strict'; - export class Order { + + + + export interface Order { + + id: number; + + petId: number; + + quantity: number; + + shipDate: Date; + + /** * Order Status */ + status: Order.StatusEnum; + + complete: boolean; + } - export module Order { - export enum StatusEnum { - placed = 'placed', - approved = 'approved', + export namespace Order { + + + + + + + + + + + + export enum StatusEnum { + placed = 'placed', + approved = 'approved', delivered = 'delivered', } + + + + } -} \ No newline at end of file + + + +} diff --git a/samples/client/petstore/typescript-angular/API/Client/Pet.ts b/samples/client/petstore/typescript-angular/API/Client/Pet.ts index 9523bef90b0..acbb6bcb6c2 100644 --- a/samples/client/petstore/typescript-angular/API/Client/Pet.ts +++ b/samples/client/petstore/typescript-angular/API/Client/Pet.ts @@ -1,32 +1,67 @@ /// -module API.Client { +namespace API.Client { 'use strict'; - export class Pet { + + + + export interface Pet { + + id: number; + + category: Category; + + name: string; + + photoUrls: Array; + + tags: Array; + + /** * pet status in the store */ + status: Pet.StatusEnum; + } - export module Pet { - export enum StatusEnum { - available = 'available', - pending = 'pending', + export namespace Pet { + + + + + + + + + + + + + + export enum StatusEnum { + available = 'available', + pending = 'pending', sold = 'sold', } + + } -} \ No newline at end of file + + + +} diff --git a/samples/client/petstore/typescript-angular/API/Client/PetApi.ts b/samples/client/petstore/typescript-angular/API/Client/PetApi.ts index b8eb8c3ae12..6e7dd50c6aa 100644 --- a/samples/client/petstore/typescript-angular/API/Client/PetApi.ts +++ b/samples/client/petstore/typescript-angular/API/Client/PetApi.ts @@ -2,26 +2,48 @@ /* tslint:disable:no-unused-variable member-ordering */ -module API.Client { + +namespace API.Client { 'use strict'; + export class PetApi { - private basePath = 'http://petstore.swagger.io/v2'; + protected basePath = 'http://petstore.swagger.io/v2'; + public defaultHeaders : any = {}; static $inject: string[] = ['$http', '$httpParamSerializer']; - constructor(private $http: ng.IHttpService, basePath?: string, private $httpParamSerializer?: (any) => any) { + constructor(protected $http: ng.IHttpService, protected $httpParamSerializer?: (d: any) => any, basePath?: string) { if (basePath) { this.basePath = basePath; } } - public updatePet (body?: Pet, extraHttpRequestParams?: any ) : ng.IHttpPromise<{}> { - var path = this.basePath + '/pet'; + private extendObj(objA: T1, objB: T2) { + for(let key in objB){ + if(objB.hasOwnProperty(key)){ + objA[key] = objB[key]; + } + } + return objA; + } - var queryParameters: any = {}; - var headerParams: any = {}; - var httpRequestParams: any = { + + + public updatePet (body?: Pet, extraHttpRequestParams?: any ) : ng.IHttpPromise<{}> { + const path = this.basePath + '/pet'; + + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + + + + + + + + + let httpRequestParams: any = { method: 'PUT', url: path, json: true, @@ -33,22 +55,27 @@ module API.Client { }; if (extraHttpRequestParams) { - for (var k in extraHttpRequestParams) { - if (extraHttpRequestParams.hasOwnProperty(k)) { - httpRequestParams[k] = extraHttpRequestParams[k]; - } - } + httpRequestParams = this.extendObj(httpRequestParams, extraHttpRequestParams); } return this.$http(httpRequestParams); } - public addPet (body?: Pet, extraHttpRequestParams?: any ) : ng.IHttpPromise<{}> { - var path = this.basePath + '/pet'; - var queryParameters: any = {}; - var headerParams: any = {}; - var httpRequestParams: any = { + public addPet (body?: Pet, extraHttpRequestParams?: any ) : ng.IHttpPromise<{}> { + const path = this.basePath + '/pet'; + + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + + + + + + + + + let httpRequestParams: any = { method: 'POST', url: path, json: true, @@ -60,26 +87,32 @@ module API.Client { }; if (extraHttpRequestParams) { - for (var k in extraHttpRequestParams) { - if (extraHttpRequestParams.hasOwnProperty(k)) { - httpRequestParams[k] = extraHttpRequestParams[k]; - } - } + httpRequestParams = this.extendObj(httpRequestParams, extraHttpRequestParams); } return this.$http(httpRequestParams); } - public findPetsByStatus (status?: Array, extraHttpRequestParams?: any ) : ng.IHttpPromise> { - var path = this.basePath + '/pet/findByStatus'; - var queryParameters: any = {}; - var headerParams: any = {}; + public findPetsByStatus (status?: Array, extraHttpRequestParams?: any ) : ng.IHttpPromise> { + const path = this.basePath + '/pet/findByStatus'; + + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + + + + + if (status !== undefined) { queryParameters['status'] = status; } - var httpRequestParams: any = { + + + + + let httpRequestParams: any = { method: 'GET', url: path, json: true, @@ -90,26 +123,32 @@ module API.Client { }; if (extraHttpRequestParams) { - for (var k in extraHttpRequestParams) { - if (extraHttpRequestParams.hasOwnProperty(k)) { - httpRequestParams[k] = extraHttpRequestParams[k]; - } - } + httpRequestParams = this.extendObj(httpRequestParams, extraHttpRequestParams); } return this.$http(httpRequestParams); } - public findPetsByTags (tags?: Array, extraHttpRequestParams?: any ) : ng.IHttpPromise> { - var path = this.basePath + '/pet/findByTags'; - var queryParameters: any = {}; - var headerParams: any = {}; + public findPetsByTags (tags?: Array, extraHttpRequestParams?: any ) : ng.IHttpPromise> { + const path = this.basePath + '/pet/findByTags'; + + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + + + + + if (tags !== undefined) { queryParameters['tags'] = tags; } - var httpRequestParams: any = { + + + + + let httpRequestParams: any = { method: 'GET', url: path, json: true, @@ -120,29 +159,33 @@ module API.Client { }; if (extraHttpRequestParams) { - for (var k in extraHttpRequestParams) { - if (extraHttpRequestParams.hasOwnProperty(k)) { - httpRequestParams[k] = extraHttpRequestParams[k]; - } - } + httpRequestParams = this.extendObj(httpRequestParams, extraHttpRequestParams); } return this.$http(httpRequestParams); } + public getPetById (petId: number, extraHttpRequestParams?: any ) : ng.IHttpPromise { - var path = this.basePath + '/pet/{petId}'; + const path = this.basePath + '/pet/{petId}' + .replace('{' + 'petId' + '}', String(petId)); + + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + - path = path.replace('{' + 'petId' + '}', String(petId)); - var queryParameters: any = {}; - var headerParams: any = {}; // verify required parameter 'petId' is set if (!petId) { throw new Error('Missing required parameter petId when calling getPetById'); } - var httpRequestParams: any = { + + + + + + let httpRequestParams: any = { method: 'GET', url: path, json: true, @@ -153,37 +196,49 @@ module API.Client { }; if (extraHttpRequestParams) { - for (var k in extraHttpRequestParams) { - if (extraHttpRequestParams.hasOwnProperty(k)) { - httpRequestParams[k] = extraHttpRequestParams[k]; - } - } + httpRequestParams = this.extendObj(httpRequestParams, extraHttpRequestParams); } return this.$http(httpRequestParams); } + public updatePetWithForm (petId: string, name?: string, status?: string, extraHttpRequestParams?: any ) : ng.IHttpPromise<{}> { - var path = this.basePath + '/pet/{petId}'; + const path = this.basePath + '/pet/{petId}' + .replace('{' + 'petId' + '}', String(petId)); + + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + + let formParams: any = {}; + - path = path.replace('{' + 'petId' + '}', String(petId)); - 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 = { + + + let httpRequestParams: any = { method: 'POST', url: path, json: false, @@ -195,31 +250,38 @@ module API.Client { }; if (extraHttpRequestParams) { - for (var k in extraHttpRequestParams) { - if (extraHttpRequestParams.hasOwnProperty(k)) { - httpRequestParams[k] = extraHttpRequestParams[k]; - } - } + httpRequestParams = this.extendObj(httpRequestParams, extraHttpRequestParams); } return this.$http(httpRequestParams); } + public deletePet (petId: number, apiKey?: string, extraHttpRequestParams?: any ) : ng.IHttpPromise<{}> { - var path = this.basePath + '/pet/{petId}'; + const path = this.basePath + '/pet/{petId}' + .replace('{' + 'petId' + '}', String(petId)); + + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + - path = path.replace('{' + 'petId' + '}', String(petId)); - 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['api_key'] = apiKey; - var httpRequestParams: any = { + + + + let httpRequestParams: any = { method: 'DELETE', url: path, json: true, @@ -230,37 +292,49 @@ module API.Client { }; if (extraHttpRequestParams) { - for (var k in extraHttpRequestParams) { - if (extraHttpRequestParams.hasOwnProperty(k)) { - httpRequestParams[k] = extraHttpRequestParams[k]; - } - } + httpRequestParams = this.extendObj(httpRequestParams, extraHttpRequestParams); } return this.$http(httpRequestParams); } + public uploadFile (petId: number, additionalMetadata?: string, file?: any, extraHttpRequestParams?: any ) : ng.IHttpPromise<{}> { - var path = this.basePath + '/pet/{petId}/uploadImage'; + const path = this.basePath + '/pet/{petId}/uploadImage' + .replace('{' + 'petId' + '}', String(petId)); + + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + + let formParams: any = {}; + - path = path.replace('{' + 'petId' + '}', String(petId)); - 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 = { + + + let httpRequestParams: any = { method: 'POST', url: path, json: false, @@ -272,14 +346,12 @@ module API.Client { }; if (extraHttpRequestParams) { - for (var k in extraHttpRequestParams) { - if (extraHttpRequestParams.hasOwnProperty(k)) { - httpRequestParams[k] = extraHttpRequestParams[k]; - } - } + httpRequestParams = this.extendObj(httpRequestParams, extraHttpRequestParams); } return this.$http(httpRequestParams); } + } } + diff --git a/samples/client/petstore/typescript-angular/API/Client/Tag.ts b/samples/client/petstore/typescript-angular/API/Client/Tag.ts index 2ec9b456f27..525d5ff8ab1 100644 --- a/samples/client/petstore/typescript-angular/API/Client/Tag.ts +++ b/samples/client/petstore/typescript-angular/API/Client/Tag.ts @@ -1,13 +1,24 @@ /// -module API.Client { +namespace API.Client { 'use strict'; - export class Tag { + + + + export interface Tag { + + id: number; + + name: string; + } -} \ No newline at end of file + + + +} diff --git a/samples/client/petstore/typescript-angular/API/Client/User.ts b/samples/client/petstore/typescript-angular/API/Client/User.ts index ca8ac57c7a3..274b2e866e3 100644 --- a/samples/client/petstore/typescript-angular/API/Client/User.ts +++ b/samples/client/petstore/typescript-angular/API/Client/User.ts @@ -1,28 +1,52 @@ /// -module API.Client { +namespace API.Client { 'use strict'; - export class User { + + + + export interface User { + + id: number; + + username: string; + + firstName: string; + + lastName: string; + + email: string; + + password: string; + + phone: string; + + /** * User Status */ + userStatus: number; + } -} \ No newline at end of file + + + +} diff --git a/samples/client/petstore/typescript-angular/tsconfig.json b/samples/client/petstore/typescript-angular/tsconfig.json index c389d5011ff..9bf11bd4cee 100644 --- a/samples/client/petstore/typescript-angular/tsconfig.json +++ b/samples/client/petstore/typescript-angular/tsconfig.json @@ -1,18 +1,19 @@ { - "compilerOptions": { - "noImplicitAny": true, - "out": "client.js" - }, - "files": [ - "API/Client/Category.ts", - "API/Client/Pet.ts", - "API/Client/StoreApi.ts", - "API/Client/User.ts", - "API/Client/api.d.ts", - "API/Client/Order.ts", - "API/Client/PetApi.ts", - "API/Client/Tag.ts", - "API/Client/UserApi.ts", - "typings/tsd.d.ts" - ] + "compilerOptions": { + "noImplicitAny": true, + "suppressImplicitAnyIndexErrors": true, + "out": "client.js" + }, + "files": [ + "API/Client/Category.ts", + "API/Client/Pet.ts", + "API/Client/StoreApi.ts", + "API/Client/User.ts", + "API/Client/api.d.ts", + "API/Client/Order.ts", + "API/Client/PetApi.ts", + "API/Client/Tag.ts", + "API/Client/UserApi.ts", + "typings/tsd.d.ts" + ] } diff --git a/samples/client/petstore/typescript-node/api.ts b/samples/client/petstore/typescript-node/api.ts index 148782a4000..7ee27e06dd1 100644 --- a/samples/client/petstore/typescript-node/api.ts +++ b/samples/client/petstore/typescript-node/api.ts @@ -8,69 +8,181 @@ import http = require('http'); /* tslint:disable:no-unused-variable */ + + + export class User { + + id: number; + + username: string; + + firstName: string; + + lastName: string; + + email: string; + + password: string; + + phone: string; + + /** * User Status */ + userStatus: number; + } + + + + + export class Category { + + id: number; + + name: string; + } + + + + + export class Pet { + + id: number; + + category: Category; + + name: string; + + photoUrls: Array; + + tags: Array; + + /** * pet status in the store */ + status: Pet.StatusEnum; + } -export module Pet { + +export namespace Pet { + + + + + + + + + + + + export enum StatusEnum { available = 'available', pending = 'pending', sold = 'sold', } -} -export class Tag { - id: number; - name: string; + + } -export class Order { + + + + +export class Tag { + + id: number; + + + name: string; + +} + + + + + + +export class Order { + + + id: number; + + petId: number; + + quantity: number; + + shipDate: Date; + + /** * Order Status */ + status: Order.StatusEnum; + + complete: boolean; + } -export module Order { + +export namespace Order { + + + + + + + + + + export enum StatusEnum { placed = 'placed', approved = 'approved', delivered = 'delivered', } + + + + } + + + interface Authentication { /** * Apply authentication settings to header and query params. @@ -117,17 +229,46 @@ class VoidAuth implements Authentication { } } + + + + export class UserApi { - private basePath = 'http://petstore.swagger.io/v2'; + protected basePath = 'http://petstore.swagger.io/v2'; + protected defaultHeaders : any = {}; + + + public authentications = { 'default': new VoidAuth(), - 'api_key': new ApiKeyAuth('header', 'api_key'), + + + + 'petstore_auth': new OAuth(), + + + + + 'api_key': new ApiKeyAuth('header', 'api_key'), + + + } constructor(url: string, basePath?: string); + + + + + constructor(private url: string, basePathOrUsername: string, password?: string, basePath?: string) { if (password) { + + + + + if (basePath) { this.basePath = basePath; } @@ -138,31 +279,56 @@ export class UserApi { } } + + + + + + + + set apiKey(key: string) { this.authentications.api_key.apiKey = key; } - public createUser (body?: User) : Promise<{ response: http.ClientResponse; }> { - var path = this.url + this.basePath + '/user'; - - var queryParameters: any = {}; - var headerParams: any = {}; - var formParams: any = {}; - var useFormData = false; + private extendObj(objA: T1, objB: T2) { + for(let key in objB){ + if(objB.hasOwnProperty(key)){ + objA[key] = objB[key]; + } + } + return objA; + } - var deferred = promise.defer<{ response: http.ClientResponse; }>(); - var requestOptions: request.Options = { + public createUser (body?: User) : Promise<{ response: http.ClientResponse; body?: any; }> { + const path = this.url + this.basePath + '/user'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; + + + + + let useFormData = false; + + + let deferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let 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) { @@ -188,27 +354,33 @@ export class UserApi { return deferred.promise; } - public createUsersWithArrayInput (body?: Array) : Promise<{ response: http.ClientResponse; }> { - var path = this.url + this.basePath + '/user/createWithArray'; - var queryParameters: any = {}; - var headerParams: any = {}; - var formParams: any = {}; + public createUsersWithArrayInput (body?: Array) : Promise<{ response: http.ClientResponse; body?: any; }> { + const path = this.url + this.basePath + '/user/createWithArray'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; - var useFormData = false; - var deferred = promise.defer<{ response: http.ClientResponse; }>(); - var requestOptions: request.Options = { + let useFormData = false; + + + let deferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let 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) { @@ -234,27 +406,33 @@ export class UserApi { return deferred.promise; } - public createUsersWithListInput (body?: Array) : Promise<{ response: http.ClientResponse; }> { - var path = this.url + this.basePath + '/user/createWithList'; - var queryParameters: any = {}; - var headerParams: any = {}; - var formParams: any = {}; + public createUsersWithListInput (body?: Array) : Promise<{ response: http.ClientResponse; body?: any; }> { + const path = this.url + this.basePath + '/user/createWithList'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; - var useFormData = false; - var deferred = promise.defer<{ response: http.ClientResponse; }>(); - var requestOptions: request.Options = { + let useFormData = false; + + + let deferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let 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) { @@ -280,34 +458,41 @@ export class UserApi { return deferred.promise; } + public loginUser (username?: string, password?: string) : Promise<{ response: http.ClientResponse; body: string; }> { - var path = this.url + this.basePath + '/user/login'; + const path = this.url + this.basePath + '/user/login'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; - var queryParameters: any = {}; - var headerParams: any = {}; - var formParams: any = {}; if (username !== undefined) { queryParameters['username'] = username; } + if (password !== undefined) { queryParameters['password'] = password; } - var useFormData = false; - var deferred = promise.defer<{ response: http.ClientResponse; body: string; }>(); - var requestOptions: request.Options = { + let useFormData = false; + + + let deferred = promise.defer<{ response: http.ClientResponse; body: string; }>(); + + let requestOptions: request.Options = { method: 'GET', qs: queryParameters, headers: headerParams, uri: path, json: true, + } + this.authentications.default.applyToRequest(requestOptions); if (Object.keys(formParams).length) { @@ -333,26 +518,31 @@ export class UserApi { return deferred.promise; } - public logoutUser () : Promise<{ response: http.ClientResponse; }> { - var path = this.url + this.basePath + '/user/logout'; - var queryParameters: any = {}; - var headerParams: any = {}; - var formParams: any = {}; + public logoutUser () : Promise<{ response: http.ClientResponse; body?: any; }> { + const path = this.url + this.basePath + '/user/logout'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; - var useFormData = false; - var deferred = promise.defer<{ response: http.ClientResponse; }>(); - var requestOptions: request.Options = { + let useFormData = false; + + + let deferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { method: 'GET', qs: queryParameters, headers: headerParams, uri: path, json: true, + } + this.authentications.default.applyToRequest(requestOptions); if (Object.keys(formParams).length) { @@ -378,14 +568,13 @@ export class UserApi { return deferred.promise; } + public getUserByName (username: string) : Promise<{ response: http.ClientResponse; body: User; }> { - var path = this.url + this.basePath + '/user/{username}'; - - path = path.replace('{' + 'username' + '}', String(username)); - - var queryParameters: any = {}; - var headerParams: any = {}; - var formParams: any = {}; + const path = this.url + this.basePath + '/user/{username}' + .replace('{' + 'username' + '}', String(username)); + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; // verify required parameter 'username' is set @@ -393,18 +582,23 @@ export class UserApi { throw new Error('Missing required parameter username when calling getUserByName'); } - var useFormData = false; - var deferred = promise.defer<{ response: http.ClientResponse; body: User; }>(); - var requestOptions: request.Options = { + let useFormData = false; + + + let deferred = promise.defer<{ response: http.ClientResponse; body: User; }>(); + + let requestOptions: request.Options = { method: 'GET', qs: queryParameters, headers: headerParams, uri: path, json: true, + } + this.authentications.default.applyToRequest(requestOptions); if (Object.keys(formParams).length) { @@ -430,14 +624,13 @@ export class UserApi { return deferred.promise; } - public updateUser (username: string, body?: User) : Promise<{ response: http.ClientResponse; }> { - var path = this.url + this.basePath + '/user/{username}'; - path = path.replace('{' + 'username' + '}', String(username)); - - var queryParameters: any = {}; - var headerParams: any = {}; - var formParams: any = {}; + public updateUser (username: string, body?: User) : Promise<{ response: http.ClientResponse; body?: any; }> { + const path = this.url + this.basePath + '/user/{username}' + .replace('{' + 'username' + '}', String(username)); + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; // verify required parameter 'username' is set @@ -445,19 +638,25 @@ export class UserApi { throw new Error('Missing required parameter username when calling updateUser'); } - var useFormData = false; - var deferred = promise.defer<{ response: http.ClientResponse; }>(); - var requestOptions: request.Options = { + let useFormData = false; + + + let deferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { method: 'PUT', qs: queryParameters, headers: headerParams, uri: path, json: true, + body: body, + } + this.authentications.default.applyToRequest(requestOptions); if (Object.keys(formParams).length) { @@ -483,14 +682,13 @@ export class UserApi { return deferred.promise; } - public deleteUser (username: string) : Promise<{ response: http.ClientResponse; }> { - var path = this.url + this.basePath + '/user/{username}'; - path = path.replace('{' + 'username' + '}', String(username)); - - var queryParameters: any = {}; - var headerParams: any = {}; - var formParams: any = {}; + public deleteUser (username: string) : Promise<{ response: http.ClientResponse; body?: any; }> { + const path = this.url + this.basePath + '/user/{username}' + .replace('{' + 'username' + '}', String(username)); + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; // verify required parameter 'username' is set @@ -498,18 +696,23 @@ export class UserApi { throw new Error('Missing required parameter username when calling deleteUser'); } - var useFormData = false; - var deferred = promise.defer<{ response: http.ClientResponse; }>(); - var requestOptions: request.Options = { + let useFormData = false; + + + let deferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { method: 'DELETE', qs: queryParameters, headers: headerParams, uri: path, json: true, + } + this.authentications.default.applyToRequest(requestOptions); if (Object.keys(formParams).length) { @@ -534,478 +737,48 @@ export class UserApi { return deferred.promise; } + } -export class PetApi { - 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 updatePet (body?: Pet) : Promise<{ response: http.ClientResponse; }> { - var path = this.url + this.basePath + '/pet'; - var queryParameters: any = {}; - var headerParams: any = {}; - var formParams: any = {}; - - - var useFormData = false; - - var deferred = promise.defer<{ response: http.ClientResponse; }>(); - - var requestOptions: request.Options = { - method: 'PUT', - qs: queryParameters, - headers: headerParams, - uri: path, - json: true, - body: body, - } - - this.authentications.petstore_auth.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 addPet (body?: Pet) : Promise<{ response: http.ClientResponse; }> { - var path = this.url + this.basePath + '/pet'; - - var queryParameters: any = {}; - var headerParams: any = {}; - var formParams: any = {}; - - - var useFormData = false; - - var deferred = promise.defer<{ response: http.ClientResponse; }>(); - - var requestOptions: request.Options = { - method: 'POST', - qs: queryParameters, - headers: headerParams, - uri: path, - json: true, - body: body, - } - - this.authentications.petstore_auth.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 findPetsByStatus (status?: Array) : Promise<{ response: http.ClientResponse; body: Array; }> { - var path = this.url + this.basePath + '/pet/findByStatus'; - - var queryParameters: any = {}; - var headerParams: any = {}; - var formParams: any = {}; - - - if (status !== undefined) { - queryParameters['status'] = status; - } - - var useFormData = false; - - var deferred = promise.defer<{ response: http.ClientResponse; body: Array; }>(); - - var requestOptions: request.Options = { - method: 'GET', - qs: queryParameters, - headers: headerParams, - uri: path, - json: true, - } - - this.authentications.petstore_auth.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 findPetsByTags (tags?: Array) : Promise<{ response: http.ClientResponse; body: Array; }> { - var path = this.url + this.basePath + '/pet/findByTags'; - - var queryParameters: any = {}; - var headerParams: any = {}; - var formParams: any = {}; - - - if (tags !== undefined) { - queryParameters['tags'] = tags; - } - - var useFormData = false; - - var deferred = promise.defer<{ response: http.ClientResponse; body: Array; }>(); - - var requestOptions: request.Options = { - method: 'GET', - qs: queryParameters, - headers: headerParams, - uri: path, - json: true, - } - - this.authentications.petstore_auth.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 getPetById (petId: number) : Promise<{ response: http.ClientResponse; body: Pet; }> { - var path = this.url + this.basePath + '/pet/{petId}'; - - path = path.replace('{' + 'petId' + '}', String(petId)); - - 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 getPetById'); - } - - var useFormData = false; - - var deferred = promise.defer<{ response: http.ClientResponse; body: Pet; }>(); - - var requestOptions: request.Options = { - method: 'GET', - qs: queryParameters, - headers: headerParams, - uri: path, - json: true, - } - - this.authentications.api_key.applyToRequest(requestOptions); - - this.authentications.petstore_auth.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 updatePetWithForm (petId: string, name?: string, status?: string) : Promise<{ response: http.ClientResponse; }> { - var path = this.url + this.basePath + '/pet/{petId}'; - - path = path.replace('{' + 'petId' + '}', String(petId)); - - 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'); - } - - var useFormData = false; - - if (name !== undefined) { - formParams['name'] = name; - } - - if (status !== undefined) { - formParams['status'] = status; - } - - var deferred = promise.defer<{ response: http.ClientResponse; }>(); - - var requestOptions: request.Options = { - method: 'POST', - qs: queryParameters, - headers: headerParams, - uri: path, - json: true, - } - - this.authentications.petstore_auth.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 deletePet (petId: number, apiKey?: string) : Promise<{ response: http.ClientResponse; }> { - var path = this.url + this.basePath + '/pet/{petId}'; - - path = path.replace('{' + 'petId' + '}', String(petId)); - - 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 deletePet'); - } - - headerParams['api_key'] = apiKey; - - 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.petstore_auth.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 uploadFile (petId: number, additionalMetadata?: string, file?: any) : Promise<{ response: http.ClientResponse; }> { - var path = this.url + this.basePath + '/pet/{petId}/uploadImage'; - - path = path.replace('{' + 'petId' + '}', String(petId)); - - 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'); - } - - var useFormData = false; - - if (additionalMetadata !== undefined) { - formParams['additionalMetadata'] = additionalMetadata; - } - - if (file !== undefined) { - formParams['file'] = file; - } - useFormData = true; - - var deferred = promise.defer<{ response: http.ClientResponse; }>(); - - var requestOptions: request.Options = { - method: 'POST', - qs: queryParameters, - headers: headerParams, - uri: path, - json: true, - } - - this.authentications.petstore_auth.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; - } -} export class StoreApi { - private basePath = 'http://petstore.swagger.io/v2'; + protected basePath = 'http://petstore.swagger.io/v2'; + protected defaultHeaders : any = {}; + + + public authentications = { 'default': new VoidAuth(), - 'api_key': new ApiKeyAuth('header', 'api_key'), + + + + 'petstore_auth': new OAuth(), + + + + + 'api_key': new ApiKeyAuth('header', 'api_key'), + + + } constructor(url: string, basePath?: string); + + + + + constructor(private url: string, basePathOrUsername: string, password?: string, basePath?: string) { if (password) { + + + + + if (basePath) { this.basePath = basePath; } @@ -1016,32 +789,57 @@ export class StoreApi { } } + + + + + + + + set apiKey(key: string) { this.authentications.api_key.apiKey = key; } + + + private extendObj(objA: T1, objB: T2) { + for(let key in objB){ + if(objB.hasOwnProperty(key)){ + objA[key] = objB[key]; + } + } + return objA; + } + + 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 = {}; + const path = this.url + this.basePath + '/store/inventory'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; - var useFormData = false; - var deferred = promise.defer<{ response: http.ClientResponse; body: { [key: string]: number; }; }>(); - var requestOptions: request.Options = { + let useFormData = false; + + + let deferred = promise.defer<{ response: http.ClientResponse; body: { [key: string]: number; }; }>(); + + let 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) { @@ -1067,27 +865,33 @@ export class StoreApi { 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 = {}; + const path = this.url + this.basePath + '/store/order'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; - var useFormData = false; - var deferred = promise.defer<{ response: http.ClientResponse; body: Order; }>(); - var requestOptions: request.Options = { + let useFormData = false; + + + let deferred = promise.defer<{ response: http.ClientResponse; body: Order; }>(); + + let 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) { @@ -1113,14 +917,13 @@ export class StoreApi { 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 = {}; + const path = this.url + this.basePath + '/store/order/{orderId}' + .replace('{' + 'orderId' + '}', String(orderId)); + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; // verify required parameter 'orderId' is set @@ -1128,18 +931,23 @@ export class StoreApi { 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 = { + let useFormData = false; + + + let deferred = promise.defer<{ response: http.ClientResponse; body: Order; }>(); + + let requestOptions: request.Options = { method: 'GET', qs: queryParameters, headers: headerParams, uri: path, json: true, + } + this.authentications.default.applyToRequest(requestOptions); if (Object.keys(formParams).length) { @@ -1165,14 +973,13 @@ export class StoreApi { 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 = {}; + public deleteOrder (orderId: string) : Promise<{ response: http.ClientResponse; body?: any; }> { + const path = this.url + this.basePath + '/store/order/{orderId}' + .replace('{' + 'orderId' + '}', String(orderId)); + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; // verify required parameter 'orderId' is set @@ -1180,18 +987,23 @@ export class StoreApi { throw new Error('Missing required parameter orderId when calling deleteOrder'); } - var useFormData = false; - var deferred = promise.defer<{ response: http.ClientResponse; }>(); - var requestOptions: request.Options = { + let useFormData = false; + + + let deferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { method: 'DELETE', qs: queryParameters, headers: headerParams, uri: path, json: true, + } + this.authentications.default.applyToRequest(requestOptions); if (Object.keys(formParams).length) { @@ -1216,4 +1028,573 @@ export class StoreApi { return deferred.promise; } + } + + + + +export class PetApi { + protected basePath = 'http://petstore.swagger.io/v2'; + protected defaultHeaders : any = {}; + + + + public authentications = { + 'default': new VoidAuth(), + + + + + 'petstore_auth': new OAuth(), + + + + + 'api_key': new ApiKeyAuth('header', 'api_key'), + + + + } + + 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; + } + + + + private extendObj(objA: T1, objB: T2) { + for(let key in objB){ + if(objB.hasOwnProperty(key)){ + objA[key] = objB[key]; + } + } + return objA; + } + + + public updatePet (body?: Pet) : Promise<{ response: http.ClientResponse; body?: any; }> { + const path = this.url + this.basePath + '/pet'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; + + + + + let useFormData = false; + + + let deferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { + method: 'PUT', + qs: queryParameters, + headers: headerParams, + uri: path, + json: true, + + body: body, + + } + + + this.authentications.petstore_auth.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 addPet (body?: Pet) : Promise<{ response: http.ClientResponse; body?: any; }> { + const path = this.url + this.basePath + '/pet'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; + + + + + let useFormData = false; + + + let deferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { + method: 'POST', + qs: queryParameters, + headers: headerParams, + uri: path, + json: true, + + body: body, + + } + + + this.authentications.petstore_auth.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 findPetsByStatus (status?: Array) : Promise<{ response: http.ClientResponse; body: Array; }> { + const path = this.url + this.basePath + '/pet/findByStatus'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; + + + + if (status !== undefined) { + queryParameters['status'] = status; + } + + + + let useFormData = false; + + + let deferred = promise.defer<{ response: http.ClientResponse; body: Array; }>(); + + let requestOptions: request.Options = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: path, + json: true, + + } + + + this.authentications.petstore_auth.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 findPetsByTags (tags?: Array) : Promise<{ response: http.ClientResponse; body: Array; }> { + const path = this.url + this.basePath + '/pet/findByTags'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; + + + + if (tags !== undefined) { + queryParameters['tags'] = tags; + } + + + + let useFormData = false; + + + let deferred = promise.defer<{ response: http.ClientResponse; body: Array; }>(); + + let requestOptions: request.Options = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: path, + json: true, + + } + + + this.authentications.petstore_auth.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 getPetById (petId: number) : Promise<{ response: http.ClientResponse; body: Pet; }> { + const path = this.url + this.basePath + '/pet/{petId}' + .replace('{' + 'petId' + '}', String(petId)); + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; + + + // verify required parameter 'petId' is set + if (!petId) { + throw new Error('Missing required parameter petId when calling getPetById'); + } + + + + let useFormData = false; + + + let deferred = promise.defer<{ response: http.ClientResponse; body: Pet; }>(); + + let 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 updatePetWithForm (petId: string, name?: string, status?: string) : Promise<{ response: http.ClientResponse; body?: any; }> { + const path = this.url + this.basePath + '/pet/{petId}' + .replace('{' + 'petId' + '}', String(petId)); + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; + + + // verify required parameter 'petId' is set + if (!petId) { + throw new Error('Missing required parameter petId when calling updatePetWithForm'); + } + + + + let useFormData = false; + + + if (name !== undefined) { + formParams['name'] = name; + } + + + + if (status !== undefined) { + formParams['status'] = status; + } + + + + let deferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { + method: 'POST', + qs: queryParameters, + headers: headerParams, + uri: path, + json: true, + + } + + + this.authentications.petstore_auth.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 deletePet (petId: number, apiKey?: string) : Promise<{ response: http.ClientResponse; body?: any; }> { + const path = this.url + this.basePath + '/pet/{petId}' + .replace('{' + 'petId' + '}', String(petId)); + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; + + + // verify required parameter 'petId' is set + if (!petId) { + throw new Error('Missing required parameter petId when calling deletePet'); + } + + + + headerParams['api_key'] = apiKey; + + + let useFormData = false; + + + let deferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { + method: 'DELETE', + qs: queryParameters, + headers: headerParams, + uri: path, + json: true, + + } + + + this.authentications.petstore_auth.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 uploadFile (petId: number, additionalMetadata?: string, file?: any) : Promise<{ response: http.ClientResponse; body?: any; }> { + const path = this.url + this.basePath + '/pet/{petId}/uploadImage' + .replace('{' + 'petId' + '}', String(petId)); + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; + + + // verify required parameter 'petId' is set + if (!petId) { + throw new Error('Missing required parameter petId when calling uploadFile'); + } + + + + let useFormData = false; + + + if (additionalMetadata !== undefined) { + formParams['additionalMetadata'] = additionalMetadata; + } + + + + if (file !== undefined) { + formParams['file'] = file; + } + + useFormData = true; + + + + let deferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { + method: 'POST', + qs: queryParameters, + headers: headerParams, + uri: path, + json: true, + + } + + + this.authentications.petstore_auth.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; + } + +} + + + diff --git a/samples/client/petstore/typescript-node/client.ts b/samples/client/petstore/typescript-node/client.ts index 111c76f03c7..506f33f014e 100644 --- a/samples/client/petstore/typescript-node/client.ts +++ b/samples/client/petstore/typescript-node/client.ts @@ -1,7 +1,7 @@ import api = require('./api'); import fs = require('fs'); -var petApi = new api.PetApi('http://petstore.swagger.io'); +var petApi = new api.PetApi('http://petstore.swagger.io/'); petApi.apiKey = 'special-key'; var pet = new api.Pet(); @@ -13,39 +13,39 @@ var exitCode = 0; // Test various API calls to the petstore petApi.addPet(pet) -.then((res) => { - var newPet = (res.response).body; - petId = (res.response).body.id; - console.log(`Created pet with ID ${petId}`); - newPet.status = api.Pet.StatusEnum.available; - return petApi.updatePet(newPet); -}) -.then((res) => { - console.log('Updated pet using POST body'); - return petApi.updatePetWithForm(petId, undefined, "pending"); -}) -.then((res) => { - console.log('Updated pet using POST form'); - return petApi.uploadFile(petId, undefined, fs.createReadStream('sample.png')); -}) -.then((res) => { - console.log('Uploaded image'); - return petApi.getPetById(petId); -}) -.then((res) => { - console.log('Got pet by ID: ' + JSON.stringify(res.body)); - if (res.body.status != api.Pet.StatusEnum.pending) { - throw new Error("Unexpected pet status"); - } -}) -.catch((err:any) => { - console.error(err); - exitCode = 1; -}) -.finally(() => { - return petApi.deletePet(petId); -}) -.then((res) => { - console.log('Deleted pet'); - process.exit(exitCode); -}); + .then((res) => { + var newPet = res.body; + petId = newPet.id; + console.log(`Created pet with ID ${petId}`); + newPet.status = api.Pet.StatusEnum.available; + return petApi.updatePet(newPet); + }) + .then((res) => { + console.log('Updated pet using POST body'); + return petApi.updatePetWithForm(petId, undefined, "pending"); + }) + .then((res) => { + console.log('Updated pet using POST form'); + return petApi.uploadFile(petId, undefined, fs.createReadStream('sample.png')); + }) + .then((res) => { + console.log('Uploaded image'); + return petApi.getPetById(petId); + }) + .then((res) => { + console.log('Got pet by ID: ' + JSON.stringify(res.body)); + if (res.body.status != api.Pet.StatusEnum.pending) { + throw new Error("Unexpected pet status"); + } + }) + .catch((err: any) => { + console.error(err); + exitCode = 1; + }) + .finally(() => { + return petApi.deletePet(petId); + }) + .then((res) => { + console.log('Deleted pet'); + process.exit(exitCode); + }); diff --git a/samples/client/petstore/typescript-node/tsconfig.json b/samples/client/petstore/typescript-node/tsconfig.json index 572228f6356..7c4f5847040 100644 --- a/samples/client/petstore/typescript-node/tsconfig.json +++ b/samples/client/petstore/typescript-node/tsconfig.json @@ -2,6 +2,7 @@ "compilerOptions": { "module": "commonjs", "noImplicitAny": true, + "suppressImplicitAnyIndexErrors": true, "target": "ES5" }, "files": [