forked from loafle/openapi-generator-original
typescript-node: Use HttpError class when rejecting promises (#3876)
* Use HttpError class when rejecting promises Fixes #3872 * Update samples * Test the new code in client.ts
This commit is contained in:
parent
3242949e1a
commit
dc2907aced
@ -8,5 +8,12 @@ import { {{ classname }} } from './{{ classFilename }}';
|
||||
export * from './{{ classFilename }}Interface'
|
||||
{{/withInterfaces}}
|
||||
{{/apis}}
|
||||
import http = require('http');
|
||||
export class HttpError extends Error {
|
||||
constructor (public response: http.{{#supportsES6}}IncomingMessage{{/supportsES6}}{{^supportsES6}}ClientResponse{{/supportsES6}}, public body: any, public statusCode?: number) {
|
||||
super('HTTP request failed');
|
||||
this.name = 'HttpError';
|
||||
}
|
||||
}
|
||||
export const APIS = [{{#apis}}{{#operations}}{{ classname }}{{/operations}}{{^-last}}, {{/-last}}{{/apis}}];
|
||||
{{/apiInfo}}
|
||||
|
@ -22,6 +22,8 @@ import { OAuth } from '../model/models';
|
||||
{{/authMethods}}
|
||||
{{/hasAuthMethods}}
|
||||
|
||||
import { HttpError } from './apis';
|
||||
|
||||
let defaultBasePath = '{{{basePath}}}';
|
||||
|
||||
// ===============================================
|
||||
@ -222,7 +224,7 @@ export class {{classname}} {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -4,4 +4,11 @@ export * from './storeApi';
|
||||
import { StoreApi } from './storeApi';
|
||||
export * from './userApi';
|
||||
import { UserApi } from './userApi';
|
||||
import http = require('http');
|
||||
export class HttpError extends Error {
|
||||
constructor (public response: http.ClientResponse, public body: any, public statusCode?: number) {
|
||||
super('HTTP request failed');
|
||||
this.name = 'HttpError';
|
||||
}
|
||||
}
|
||||
export const APIS = [PetApi, StoreApi, UserApi];
|
||||
|
@ -21,6 +21,8 @@ import { ObjectSerializer, Authentication, VoidAuth } from '../model/models';
|
||||
import { OAuth } from '../model/models';
|
||||
import { ApiKeyAuth } from '../model/models';
|
||||
|
||||
import { HttpError } from './apis';
|
||||
|
||||
let defaultBasePath = 'http://petstore.swagger.io/v2';
|
||||
|
||||
// ===============================================
|
||||
@ -129,7 +131,7 @@ export class PetApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -188,7 +190,7 @@ export class PetApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -249,7 +251,7 @@ export class PetApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -310,7 +312,7 @@ export class PetApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -368,7 +370,7 @@ export class PetApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -425,7 +427,7 @@ export class PetApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -492,7 +494,7 @@ export class PetApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -561,7 +563,7 @@ export class PetApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -19,6 +19,8 @@ import { Order } from '../model/order';
|
||||
import { ObjectSerializer, Authentication, VoidAuth } from '../model/models';
|
||||
import { ApiKeyAuth } from '../model/models';
|
||||
|
||||
import { HttpError } from './apis';
|
||||
|
||||
let defaultBasePath = 'http://petstore.swagger.io/v2';
|
||||
|
||||
// ===============================================
|
||||
@ -120,7 +122,7 @@ export class StoreApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -171,7 +173,7 @@ export class StoreApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -227,7 +229,7 @@ export class StoreApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -283,7 +285,7 @@ export class StoreApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -18,6 +18,8 @@ import { User } from '../model/user';
|
||||
|
||||
import { ObjectSerializer, Authentication, VoidAuth } from '../model/models';
|
||||
|
||||
import { HttpError } from './apis';
|
||||
|
||||
let defaultBasePath = 'http://petstore.swagger.io/v2';
|
||||
|
||||
// ===============================================
|
||||
@ -117,7 +119,7 @@ export class UserApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -172,7 +174,7 @@ export class UserApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -227,7 +229,7 @@ export class UserApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -282,7 +284,7 @@ export class UserApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -338,7 +340,7 @@ export class UserApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -407,7 +409,7 @@ export class UserApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -455,7 +457,7 @@ export class UserApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -517,7 +519,7 @@ export class UserApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -4,4 +4,11 @@ export * from './storeApi';
|
||||
import { StoreApi } from './storeApi';
|
||||
export * from './userApi';
|
||||
import { UserApi } from './userApi';
|
||||
import http = require('http');
|
||||
export class HttpError extends Error {
|
||||
constructor (public response: http.ClientResponse, public body: any, public statusCode?: number) {
|
||||
super('HTTP request failed');
|
||||
this.name = 'HttpError';
|
||||
}
|
||||
}
|
||||
export const APIS = [PetApi, StoreApi, UserApi];
|
||||
|
@ -21,6 +21,8 @@ import { ObjectSerializer, Authentication, VoidAuth } from '../model/models';
|
||||
import { OAuth } from '../model/models';
|
||||
import { ApiKeyAuth } from '../model/models';
|
||||
|
||||
import { HttpError } from './apis';
|
||||
|
||||
let defaultBasePath = 'http://petstore.swagger.io/v2';
|
||||
|
||||
// ===============================================
|
||||
@ -129,7 +131,7 @@ export class PetApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -188,7 +190,7 @@ export class PetApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -249,7 +251,7 @@ export class PetApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -310,7 +312,7 @@ export class PetApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -368,7 +370,7 @@ export class PetApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -425,7 +427,7 @@ export class PetApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -492,7 +494,7 @@ export class PetApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -561,7 +563,7 @@ export class PetApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -19,6 +19,8 @@ import { Order } from '../model/order';
|
||||
import { ObjectSerializer, Authentication, VoidAuth } from '../model/models';
|
||||
import { ApiKeyAuth } from '../model/models';
|
||||
|
||||
import { HttpError } from './apis';
|
||||
|
||||
let defaultBasePath = 'http://petstore.swagger.io/v2';
|
||||
|
||||
// ===============================================
|
||||
@ -120,7 +122,7 @@ export class StoreApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -171,7 +173,7 @@ export class StoreApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -227,7 +229,7 @@ export class StoreApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -283,7 +285,7 @@ export class StoreApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -18,6 +18,8 @@ import { User } from '../model/user';
|
||||
|
||||
import { ObjectSerializer, Authentication, VoidAuth } from '../model/models';
|
||||
|
||||
import { HttpError } from './apis';
|
||||
|
||||
let defaultBasePath = 'http://petstore.swagger.io/v2';
|
||||
|
||||
// ===============================================
|
||||
@ -117,7 +119,7 @@ export class UserApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -172,7 +174,7 @@ export class UserApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -227,7 +229,7 @@ export class UserApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -282,7 +284,7 @@ export class UserApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -338,7 +340,7 @@ export class UserApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -407,7 +409,7 @@ export class UserApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -455,7 +457,7 @@ export class UserApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
@ -517,7 +519,7 @@ export class UserApi {
|
||||
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
reject({ response: response, body: body });
|
||||
reject(new HttpError(response, body, response.statusCode));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -155,5 +155,16 @@ petApi.addPet(pet)
|
||||
})
|
||||
.then((res) => {
|
||||
console.log('Deleted pet');
|
||||
// process.exit(exitCode);
|
||||
petApi.deletePet(petId).then((res) => {
|
||||
throw new Error('Unexpected success');
|
||||
}).catch((e) => {
|
||||
if (e instanceof Error && e.name === 'HttpError' && e.message === 'HTTP request failed') {
|
||||
console.log('Throws Http Errors correctly');
|
||||
process.exit(exitCode);
|
||||
} else {
|
||||
throw new Error(`Throws unexpected error:\n ${e}`);
|
||||
}
|
||||
});
|
||||
// process.exit(exitCode);
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user