Skip to content

Using typescript 2.1.4 object spread operator #4409

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ namespace {{package}} {
{{/description}}
export class {{classname}} {
protected basePath = '{{basePath}}';
public defaultHeaders : any = {};
public defaultHeaders : ng.IHttpRequestConfigHeaders = {};

static $inject: string[] = ['$http', '$httpParamSerializer', 'basePath'];

Expand All @@ -24,27 +24,18 @@ namespace {{package}} {
}
}

private extendObj<T1,T2>(objA: T1, objB: T2) {
for(let key in objB){
if(objB.hasOwnProperty(key)){
objA[key] = objB[key];
}
}
return <T1&T2>objA;
}

{{#operation}}
/**
* {{summary}}
* {{notes}}
{{#allParams}}* @param {{paramName}} {{description}}
{{/allParams}}*/
public {{nickname}} ({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}extraHttpRequestParams?: any ) : ng.IHttpPromise<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}{}{{/returnType}}> {
public {{nickname}} ({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}extraHttpRequestParams?: ng.IRequestShortcutConfig ) : ng.IHttpPromise<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}{}{{/returnType}}> {
const localVarPath = this.basePath + '{{path}}'{{#pathParams}}
.replace('{' + '{{baseName}}' + '}', String({{paramName}})){{/pathParams}};

let queryParameters: any = {};
let headerParams: any = this.extendObj({}, this.defaultHeaders);
let headerParams: ng.IHttpRequestConfigHeaders = { ...this.defaultHeaders };
{{#hasFormParams}}
let formParams: any = {};

Expand Down Expand Up @@ -75,10 +66,9 @@ namespace {{package}} {
formParams['{{baseName}}'] = {{paramName}};

{{/formParams}}
let httpRequestParams: any = {
let httpRequestParams: ng.IRequestConfig = {
method: '{{httpMethod}}',
url: localVarPath,
json: {{#hasFormParams}}false{{/hasFormParams}}{{^hasFormParams}}true{{/hasFormParams}},
{{#bodyParam}}data: {{paramName}},
{{/bodyParam}}
{{#hasFormParams}}data: this.$httpParamSerializer(formParams),
Expand All @@ -88,7 +78,7 @@ namespace {{package}} {
};

if (extraHttpRequestParams) {
httpRequestParams = this.extendObj(httpRequestParams, extraHttpRequestParams);
httpRequestParams = { ...httpRequestParams, ...extraHttpRequestParams };
}

return this.$http(httpRequestParams);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,21 +35,6 @@ export class {{classname}} {
}
}

/**
*
* Extends object by coping non-existing properties.
* @param objA object to be extended
* @param objB source object
*/
private extendObj<T1,T2>(objA: T1, objB: T2) {
for(let key in objB){
if(objB.hasOwnProperty(key)){
(objA as any)[key] = (objB as any)[key];
}
}
return <T1&T2>objA;
}

{{#operation}}
/**
* {{summary}}
Expand Down Expand Up @@ -179,7 +164,7 @@ export class {{classname}} {

// https://github.com/swagger-api/swagger-codegen/issues/4037
if (extraHttpRequestParams) {
requestOptions = this.extendObj(requestOptions, extraHttpRequestParams);
requestOptions = { ...requestOptions, ...extraHttpRequestParams };
}

return this.http.request(path, requestOptions);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -183,14 +183,7 @@ export class {{classname}} {
}
{{/isOAuth}}
{{/authMethods}}
private extendObj<T1,T2>(objA: T1, objB: T2) {
for(let key in objB){
if(objB.hasOwnProperty(key)){
objA[key] = objB[key];
}
}
return <T1&T2>objA;
}

{{#operation}}
/**
* {{summary}}
Expand All @@ -201,7 +194,7 @@ export class {{classname}} {
const localVarPath = this.basePath + '{{path}}'{{#pathParams}}
.replace('{' + '{{baseName}}' + '}', String({{paramName}})){{/pathParams}};
let queryParameters: any = {};
let headerParams: any = this.extendObj({}, this.defaultHeaders);
let headerParams: any = { ...this.defaultHeaders };
let formParams: any = {};

{{#allParams}}{{#required}}
Expand Down
83 changes: 33 additions & 50 deletions samples/client/petstore/typescript-angular/API/Client/PetApi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ namespace API.Client {

export class PetApi {
protected basePath = 'http://petstore.swagger.io/v2';
public defaultHeaders : any = {};
public defaultHeaders : ng.IHttpRequestConfigHeaders = {};

static $inject: string[] = ['$http', '$httpParamSerializer', 'basePath'];

Expand All @@ -29,36 +29,26 @@ namespace API.Client {
}
}

private extendObj<T1,T2>(objA: T1, objB: T2) {
for(let key in objB){
if(objB.hasOwnProperty(key)){
objA[key] = objB[key];
}
}
return <T1&T2>objA;
}

/**
* Add a new pet to the store
*
* @param body Pet object that needs to be added to the store
*/
public addPet (body?: Pet, extraHttpRequestParams?: any ) : ng.IHttpPromise<{}> {
public addPet (body?: Pet, extraHttpRequestParams?: ng.IRequestShortcutConfig ) : ng.IHttpPromise<{}> {
const localVarPath = this.basePath + '/pet';

let queryParameters: any = {};
let headerParams: any = this.extendObj({}, this.defaultHeaders);
let httpRequestParams: any = {
let headerParams: ng.IHttpRequestConfigHeaders = { ...this.defaultHeaders };
let httpRequestParams: ng.IRequestConfig = {
method: 'POST',
url: localVarPath,
json: true,
data: body,
params: queryParameters,
headers: headerParams
};

if (extraHttpRequestParams) {
httpRequestParams = this.extendObj(httpRequestParams, extraHttpRequestParams);
httpRequestParams = { ...httpRequestParams, ...extraHttpRequestParams };
}

return this.$http(httpRequestParams);
Expand All @@ -69,28 +59,27 @@ namespace API.Client {
* @param petId Pet id to delete
* @param apiKey
*/
public deletePet (petId: number, apiKey?: string, extraHttpRequestParams?: any ) : ng.IHttpPromise<{}> {
public deletePet (petId: number, apiKey?: string, extraHttpRequestParams?: ng.IRequestShortcutConfig ) : ng.IHttpPromise<{}> {
const localVarPath = this.basePath + '/pet/{petId}'
.replace('{' + 'petId' + '}', String(petId));

let queryParameters: any = {};
let headerParams: any = this.extendObj({}, this.defaultHeaders);
let headerParams: ng.IHttpRequestConfigHeaders = { ...this.defaultHeaders };
// verify required parameter 'petId' is not null or undefined
if (petId === null || petId === undefined) {
throw new Error('Required parameter petId was null or undefined when calling deletePet.');
}
headerParams['api_key'] = apiKey;

let httpRequestParams: any = {
let httpRequestParams: ng.IRequestConfig = {
method: 'DELETE',
url: localVarPath,
json: true,
params: queryParameters,
headers: headerParams
};

if (extraHttpRequestParams) {
httpRequestParams = this.extendObj(httpRequestParams, extraHttpRequestParams);
httpRequestParams = { ...httpRequestParams, ...extraHttpRequestParams };
}

return this.$http(httpRequestParams);
Expand All @@ -100,25 +89,24 @@ namespace API.Client {
* Multiple status values can be provided with comma separated strings
* @param status Status values that need to be considered for filter
*/
public findPetsByStatus (status?: Array<string>, extraHttpRequestParams?: any ) : ng.IHttpPromise<Array<Pet>> {
public findPetsByStatus (status?: Array<string>, extraHttpRequestParams?: ng.IRequestShortcutConfig ) : ng.IHttpPromise<Array<Pet>> {
const localVarPath = this.basePath + '/pet/findByStatus';

let queryParameters: any = {};
let headerParams: any = this.extendObj({}, this.defaultHeaders);
let headerParams: ng.IHttpRequestConfigHeaders = { ...this.defaultHeaders };
if (status !== undefined) {
queryParameters['status'] = status;
}

let httpRequestParams: any = {
let httpRequestParams: ng.IRequestConfig = {
method: 'GET',
url: localVarPath,
json: true,
params: queryParameters,
headers: headerParams
};

if (extraHttpRequestParams) {
httpRequestParams = this.extendObj(httpRequestParams, extraHttpRequestParams);
httpRequestParams = { ...httpRequestParams, ...extraHttpRequestParams };
}

return this.$http(httpRequestParams);
Expand All @@ -128,25 +116,24 @@ namespace API.Client {
* Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.
* @param tags Tags to filter by
*/
public findPetsByTags (tags?: Array<string>, extraHttpRequestParams?: any ) : ng.IHttpPromise<Array<Pet>> {
public findPetsByTags (tags?: Array<string>, extraHttpRequestParams?: ng.IRequestShortcutConfig ) : ng.IHttpPromise<Array<Pet>> {
const localVarPath = this.basePath + '/pet/findByTags';

let queryParameters: any = {};
let headerParams: any = this.extendObj({}, this.defaultHeaders);
let headerParams: ng.IHttpRequestConfigHeaders = { ...this.defaultHeaders };
if (tags !== undefined) {
queryParameters['tags'] = tags;
}

let httpRequestParams: any = {
let httpRequestParams: ng.IRequestConfig = {
method: 'GET',
url: localVarPath,
json: true,
params: queryParameters,
headers: headerParams
};

if (extraHttpRequestParams) {
httpRequestParams = this.extendObj(httpRequestParams, extraHttpRequestParams);
httpRequestParams = { ...httpRequestParams, ...extraHttpRequestParams };
}

return this.$http(httpRequestParams);
Expand All @@ -156,26 +143,25 @@ namespace API.Client {
* Returns a pet when ID &lt; 10. ID &gt; 10 or nonintegers will simulate API error conditions
* @param petId ID of pet that needs to be fetched
*/
public getPetById (petId: number, extraHttpRequestParams?: any ) : ng.IHttpPromise<Pet> {
public getPetById (petId: number, extraHttpRequestParams?: ng.IRequestShortcutConfig ) : ng.IHttpPromise<Pet> {
const localVarPath = this.basePath + '/pet/{petId}'
.replace('{' + 'petId' + '}', String(petId));

let queryParameters: any = {};
let headerParams: any = this.extendObj({}, this.defaultHeaders);
let headerParams: ng.IHttpRequestConfigHeaders = { ...this.defaultHeaders };
// verify required parameter 'petId' is not null or undefined
if (petId === null || petId === undefined) {
throw new Error('Required parameter petId was null or undefined when calling getPetById.');
}
let httpRequestParams: any = {
let httpRequestParams: ng.IRequestConfig = {
method: 'GET',
url: localVarPath,
json: true,
params: queryParameters,
headers: headerParams
};

if (extraHttpRequestParams) {
httpRequestParams = this.extendObj(httpRequestParams, extraHttpRequestParams);
httpRequestParams = { ...httpRequestParams, ...extraHttpRequestParams };
}

return this.$http(httpRequestParams);
Expand All @@ -185,22 +171,21 @@ namespace API.Client {
*
* @param body Pet object that needs to be added to the store
*/
public updatePet (body?: Pet, extraHttpRequestParams?: any ) : ng.IHttpPromise<{}> {
public updatePet (body?: Pet, extraHttpRequestParams?: ng.IRequestShortcutConfig ) : ng.IHttpPromise<{}> {
const localVarPath = this.basePath + '/pet';

let queryParameters: any = {};
let headerParams: any = this.extendObj({}, this.defaultHeaders);
let httpRequestParams: any = {
let headerParams: ng.IHttpRequestConfigHeaders = { ...this.defaultHeaders };
let httpRequestParams: ng.IRequestConfig = {
method: 'PUT',
url: localVarPath,
json: true,
data: body,
params: queryParameters,
headers: headerParams
};

if (extraHttpRequestParams) {
httpRequestParams = this.extendObj(httpRequestParams, extraHttpRequestParams);
httpRequestParams = { ...httpRequestParams, ...extraHttpRequestParams };
}

return this.$http(httpRequestParams);
Expand All @@ -212,12 +197,12 @@ namespace API.Client {
* @param name Updated name of the pet
* @param status Updated status of the pet
*/
public updatePetWithForm (petId: string, name?: string, status?: string, extraHttpRequestParams?: any ) : ng.IHttpPromise<{}> {
public updatePetWithForm (petId: string, name?: string, status?: string, extraHttpRequestParams?: ng.IRequestShortcutConfig ) : ng.IHttpPromise<{}> {
const localVarPath = this.basePath + '/pet/{petId}'
.replace('{' + 'petId' + '}', String(petId));

let queryParameters: any = {};
let headerParams: any = this.extendObj({}, this.defaultHeaders);
let headerParams: ng.IHttpRequestConfigHeaders = { ...this.defaultHeaders };
let formParams: any = {};

// verify required parameter 'petId' is not null or undefined
Expand All @@ -230,17 +215,16 @@ namespace API.Client {

formParams['status'] = status;

let httpRequestParams: any = {
let httpRequestParams: ng.IRequestConfig = {
method: 'POST',
url: localVarPath,
json: false,
data: this.$httpParamSerializer(formParams),
params: queryParameters,
headers: headerParams
};

if (extraHttpRequestParams) {
httpRequestParams = this.extendObj(httpRequestParams, extraHttpRequestParams);
httpRequestParams = { ...httpRequestParams, ...extraHttpRequestParams };
}

return this.$http(httpRequestParams);
Expand All @@ -252,12 +236,12 @@ namespace API.Client {
* @param additionalMetadata Additional data to pass to server
* @param file file to upload
*/
public uploadFile (petId: number, additionalMetadata?: string, file?: any, extraHttpRequestParams?: any ) : ng.IHttpPromise<{}> {
public uploadFile (petId: number, additionalMetadata?: string, file?: any, extraHttpRequestParams?: ng.IRequestShortcutConfig ) : ng.IHttpPromise<{}> {
const localVarPath = this.basePath + '/pet/{petId}/uploadImage'
.replace('{' + 'petId' + '}', String(petId));

let queryParameters: any = {};
let headerParams: any = this.extendObj({}, this.defaultHeaders);
let headerParams: ng.IHttpRequestConfigHeaders = { ...this.defaultHeaders };
let formParams: any = {};

// verify required parameter 'petId' is not null or undefined
Expand All @@ -270,17 +254,16 @@ namespace API.Client {

formParams['file'] = file;

let httpRequestParams: any = {
let httpRequestParams: ng.IRequestConfig = {
method: 'POST',
url: localVarPath,
json: false,
data: this.$httpParamSerializer(formParams),
params: queryParameters,
headers: headerParams
};

if (extraHttpRequestParams) {
httpRequestParams = this.extendObj(httpRequestParams, extraHttpRequestParams);
httpRequestParams = { ...httpRequestParams, ...extraHttpRequestParams };
}

return this.$http(httpRequestParams);
Expand Down
Loading