diff --git a/modules/openapi-generator/src/main/resources/typescript/api/api.mustache b/modules/openapi-generator/src/main/resources/typescript/api/api.mustache index 218b0636e71..93cc09a5060 100644 --- a/modules/openapi-generator/src/main/resources/typescript/api/api.mustache +++ b/modules/openapi-generator/src/main/resources/typescript/api/api.mustache @@ -32,17 +32,18 @@ export class {{classname}}RequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.{{httpMethod}}); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params {{#queryParams}} if ({{paramName}} !== undefined) { - requestContext.setQueryParam("{{basename}}", ObjectSerializer.serialize({{paramName}}, "{{{dataType}}}")); + requestContext.setQueryParam("{{baseName}}", ObjectSerializer.serialize({{paramName}}, "{{{dataType}}}")); } {{/queryParams}} // Header Params {{#headerParams}} - requestContext.setHeaderParam("{{basename}}", ObjectSerializer.serialize({{paramName}}, "{{{dataType}}}")); + requestContext.setHeaderParam("{{baseName}}", ObjectSerializer.serialize({{paramName}}, "{{{dataType}}}")); {{/headerParams}} // Form Params @@ -154,7 +155,8 @@ export class {{classname}}ResponseProcessor { return; {{/returnType}} } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } {{/operation}} diff --git a/modules/openapi-generator/src/main/resources/typescript/api/exception.mustache b/modules/openapi-generator/src/main/resources/typescript/api/exception.mustache index 327ac516a31..c5dd10fa438 100644 --- a/modules/openapi-generator/src/main/resources/typescript/api/exception.mustache +++ b/modules/openapi-generator/src/main/resources/typescript/api/exception.mustache @@ -1,5 +1,5 @@ export class ApiException extends Error { public constructor(public code: number, public body: T) { - super("Got HTTP Status Code " + code) + super("HTTP-Code: " + code + "\nMessage: " + JSON.stringify(body)) } } \ No newline at end of file diff --git a/samples/client/petstore/typescript/builds/default/apis/PetApi.ts b/samples/client/petstore/typescript/builds/default/apis/PetApi.ts index a417d3b75c2..f7a19f1ece0 100644 --- a/samples/client/petstore/typescript/builds/default/apis/PetApi.ts +++ b/samples/client/petstore/typescript/builds/default/apis/PetApi.ts @@ -24,7 +24,8 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params // Header Params @@ -62,11 +63,12 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.DELETE); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params // Header Params - requestContext.setHeaderParam("", ObjectSerializer.serialize(apiKey, "string")); + requestContext.setHeaderParam("api_key", ObjectSerializer.serialize(apiKey, "string")); // Form Params @@ -95,10 +97,11 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params if (status !== undefined) { - requestContext.setQueryParam("", ObjectSerializer.serialize(status, "Array<'available' | 'pending' | 'sold'>")); + requestContext.setQueryParam("status", ObjectSerializer.serialize(status, "Array<'available' | 'pending' | 'sold'>")); } // Header Params @@ -130,10 +133,11 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params if (tags !== undefined) { - requestContext.setQueryParam("", ObjectSerializer.serialize(tags, "Array")); + requestContext.setQueryParam("tags", ObjectSerializer.serialize(tags, "Array")); } // Header Params @@ -166,7 +170,8 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params // Header Params @@ -198,7 +203,8 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.PUT); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params // Header Params @@ -236,7 +242,8 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params // Header Params @@ -279,7 +286,8 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params // Header Params @@ -330,7 +338,8 @@ export class PetApiResponseProcessor { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { return; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } /** @@ -346,7 +355,8 @@ export class PetApiResponseProcessor { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { return; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } /** @@ -369,7 +379,8 @@ export class PetApiResponseProcessor { const body: Array = ObjectSerializer.deserialize(jsonBody, "Array") as Array; return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } /** @@ -392,7 +403,8 @@ export class PetApiResponseProcessor { const body: Array = ObjectSerializer.deserialize(jsonBody, "Array") as Array; return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } /** @@ -418,7 +430,8 @@ export class PetApiResponseProcessor { const body: Pet = ObjectSerializer.deserialize(jsonBody, "Pet") as Pet; return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } /** @@ -440,7 +453,8 @@ export class PetApiResponseProcessor { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { return; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } /** @@ -456,7 +470,8 @@ export class PetApiResponseProcessor { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { return; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } /** @@ -476,7 +491,8 @@ export class PetApiResponseProcessor { const body: ApiResponse = ObjectSerializer.deserialize(jsonBody, "ApiResponse") as ApiResponse; return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } } diff --git a/samples/client/petstore/typescript/builds/default/apis/StoreApi.ts b/samples/client/petstore/typescript/builds/default/apis/StoreApi.ts index c73dee8b6c2..67ca8296df6 100644 --- a/samples/client/petstore/typescript/builds/default/apis/StoreApi.ts +++ b/samples/client/petstore/typescript/builds/default/apis/StoreApi.ts @@ -24,7 +24,8 @@ export class StoreApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.DELETE); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params // Header Params @@ -46,7 +47,8 @@ export class StoreApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params // Header Params @@ -79,7 +81,8 @@ export class StoreApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params // Header Params @@ -106,7 +109,8 @@ export class StoreApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params // Header Params @@ -150,7 +154,8 @@ export class StoreApiResponseProcessor { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { return; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } /** @@ -170,7 +175,8 @@ export class StoreApiResponseProcessor { const body: { [key: string]: number; } = ObjectSerializer.deserialize(jsonBody, "{ [key: string]: number; }") as { [key: string]: number; }; return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } /** @@ -196,7 +202,8 @@ export class StoreApiResponseProcessor { const body: Order = ObjectSerializer.deserialize(jsonBody, "Order") as Order; return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } /** @@ -219,7 +226,8 @@ export class StoreApiResponseProcessor { const body: Order = ObjectSerializer.deserialize(jsonBody, "Order") as Order; return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } } diff --git a/samples/client/petstore/typescript/builds/default/apis/UserApi.ts b/samples/client/petstore/typescript/builds/default/apis/UserApi.ts index aed2f93c4b7..c5bdf836ef6 100644 --- a/samples/client/petstore/typescript/builds/default/apis/UserApi.ts +++ b/samples/client/petstore/typescript/builds/default/apis/UserApi.ts @@ -23,7 +23,8 @@ export class UserApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params // Header Params @@ -55,7 +56,8 @@ export class UserApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params // Header Params @@ -87,7 +89,8 @@ export class UserApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.POST); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params // Header Params @@ -120,7 +123,8 @@ export class UserApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.DELETE); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params // Header Params @@ -148,7 +152,8 @@ export class UserApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params // Header Params @@ -180,13 +185,14 @@ export class UserApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params if (username !== undefined) { - requestContext.setQueryParam("", ObjectSerializer.serialize(username, "string")); + requestContext.setQueryParam("username", ObjectSerializer.serialize(username, "string")); } if (password !== undefined) { - requestContext.setQueryParam("", ObjectSerializer.serialize(password, "string")); + requestContext.setQueryParam("password", ObjectSerializer.serialize(password, "string")); } // Header Params @@ -208,7 +214,8 @@ export class UserApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.GET); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params // Header Params @@ -241,7 +248,8 @@ export class UserApiRequestFactory extends BaseAPIRequestFactory { // Make Request Context const requestContext = this.configuration.baseServer.makeRequestContext(localVarPath, HttpMethod.PUT); - + requestContext.setHeaderParam("Accept", "application/json") + // Query Params // Header Params @@ -282,7 +290,8 @@ export class UserApiResponseProcessor { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { return; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } /** @@ -298,7 +307,8 @@ export class UserApiResponseProcessor { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { return; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } /** @@ -314,7 +324,8 @@ export class UserApiResponseProcessor { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { return; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } /** @@ -333,7 +344,8 @@ export class UserApiResponseProcessor { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { return; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } /** @@ -359,7 +371,8 @@ export class UserApiResponseProcessor { const body: User = ObjectSerializer.deserialize(jsonBody, "User") as User; return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } /** @@ -382,7 +395,8 @@ export class UserApiResponseProcessor { const body: string = ObjectSerializer.deserialize(jsonBody, "string") as string; return body; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } /** @@ -398,7 +412,8 @@ export class UserApiResponseProcessor { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { return; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } /** @@ -417,7 +432,8 @@ export class UserApiResponseProcessor { if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) { return; } - throw new ApiException(response.httpStatusCode, "Unknown API Status Code!"); + let body = response.body || ""; + throw new ApiException(response.httpStatusCode, "Unknown API Status Code!\nBody: \"" + body + "\""); } } diff --git a/samples/client/petstore/typescript/builds/default/apis/exception.ts b/samples/client/petstore/typescript/builds/default/apis/exception.ts index 327ac516a31..c5dd10fa438 100644 --- a/samples/client/petstore/typescript/builds/default/apis/exception.ts +++ b/samples/client/petstore/typescript/builds/default/apis/exception.ts @@ -1,5 +1,5 @@ export class ApiException extends Error { public constructor(public code: number, public body: T) { - super("Got HTTP Status Code " + code) + super("HTTP-Code: " + code + "\nMessage: " + JSON.stringify(body)) } } \ No newline at end of file diff --git a/samples/client/petstore/typescript/tests/default/test/api/PetApi.test.ts b/samples/client/petstore/typescript/tests/default/test/api/PetApi.test.ts index 5f963a302a5..bdd6f52fb34 100644 --- a/samples/client/petstore/typescript/tests/default/test/api/PetApi.test.ts +++ b/samples/client/petstore/typescript/tests/default/test/api/PetApi.test.ts @@ -1,15 +1,19 @@ -import {PetApi, Configuration, Pet, ApiException} from 'ts-petstore-client' +import {PetApi, Configuration, Pet, ApiException, Tag} from 'ts-petstore-client' import { expect, assert } from "chai"; const configuration = new Configuration() const petApi = new PetApi(configuration) +const tag = new Tag(); +tag.name = "tag1" +tag.id = Math.floor(Math.random() * 100000) + const pet = new Pet() pet.id = Math.floor(Math.random() * 100000) pet.name = "PetName" pet.photoUrls = [] pet.status = Pet.StatusEnum.Available -pet.tags = [] +pet.tags = [ tag ] pet.category = undefined describe("PetApi", () =>{ @@ -41,4 +45,81 @@ describe("PetApi", () =>{ } }) }) + + it("findPetsByStatus", (done) => { + petApi.addPet(pet).then(() => { + return petApi.findPetsByStatus(["available"]) + }).then((pets: Pet[]) => { + expect(pets.length).to.be.at.least(1); + done(); + }).catch((err) => { + done(err) + }) + }) + + // bugged on server side! Code 500 +/* it("findPetsByTag", (done) => { + petApi.addPet(pet).then(() => { + return petApi.findPetsByTags([tag.name]) + }).then((pets: Pet[]) => { + expect(pets.length).to.be.at.least(1); + done(); + }).catch((err) => { + done(err); + }) + })*/ + + it("getPetById", (done) => { + petApi.addPet(pet).then(() => { + return petApi.getPetById(pet.id) + }).then((returnedPet: Pet) => { + expect(returnedPet).to.deep.equal(pet); + done(); + }).catch((err) => { + done(err); + }) + }) + + it("updatePet", (done) => { + const oldName = pet.name + const updatedName = "updated name"; + petApi.addPet(pet).then(() => { + pet.name = updatedName + return petApi.updatePet(pet).then(() => { + pet.name = oldName; + }).catch((err) => { + pet.name = oldName + throw err; + }); + }).then(() => { + return petApi.getPetById(pet.id); + }).then((returnedPet: Pet) => { + expect(returnedPet.id).to.equal(pet.id) + expect(returnedPet.name).to.equal(updatedName); + done(); + }).catch((err) => { + done(err) + }) + }) + +// not supported by online swagger api? +/* it("updatePetWithForm", (done) => { + const updatedName = "updated name"; + petApi.addPet(pet).then(() => { + return petApi.updatePetWithForm(pet.id, updatedName) + }).then(() => { + return petApi.getPetById(pet.id) + }).then((returnedPet: Pet) => { + expect(returnedPet.id).to.equal(pet.id) + expect(returnedPet.name).to.equal(updatedName); + done() + }).catch((err) => { + done(err) + }) + })*/ + +/* it("", (done) => { + file + petApi.uploadFile(pet.id, "", file) + })*/ }) \ No newline at end of file