From fbbcdab439900fdf202522fde2cd8ba0606d8b74 Mon Sep 17 00:00:00 2001 From: Kristof Vrolijkx Date: Wed, 27 Apr 2016 23:11:39 +0200 Subject: [PATCH] fixing generation of incorrect package, typings and tsconfig --- .../typescript-node/package.mustache | 2 +- .../typescript-node/tsconfig.mustache | 14 +- .../typescript-node/typings.mustache | 11 +- .../petstore/typescript-node-with-npm/api.js | 1185 +++++++++++++++ .../typescript-node-with-npm/api.js.map | 1 + .../petstore/typescript-node-with-npm/api.ts | 1331 +++++++++++++++++ .../typescript-node-with-npm/git_push.sh | 52 + .../typescript-node-with-npm/package.json | 22 + .../typescript-node-with-npm/tsconfig.json | 18 + .../typescript-node-with-npm/typings.json | 10 + 10 files changed, 2637 insertions(+), 9 deletions(-) create mode 100644 samples/client/petstore/typescript-node-with-npm/api.js create mode 100644 samples/client/petstore/typescript-node-with-npm/api.js.map create mode 100644 samples/client/petstore/typescript-node-with-npm/api.ts create mode 100644 samples/client/petstore/typescript-node-with-npm/git_push.sh create mode 100644 samples/client/petstore/typescript-node-with-npm/package.json create mode 100644 samples/client/petstore/typescript-node-with-npm/tsconfig.json create mode 100644 samples/client/petstore/typescript-node-with-npm/typings.json diff --git a/modules/swagger-codegen/src/main/resources/typescript-node/package.mustache b/modules/swagger-codegen/src/main/resources/typescript-node/package.mustache index 410f23922422..29a9b60bbaee 100644 --- a/modules/swagger-codegen/src/main/resources/typescript-node/package.mustache +++ b/modules/swagger-codegen/src/main/resources/typescript-node/package.mustache @@ -14,7 +14,7 @@ }, "devDependencies": { "typescript": "^1.8.10", - "typings": "^0.8.1", + "typings": "^0.8.1" }{{#npmRepository}}, "publishConfig":{ "registry":"{{npmRepository}}" diff --git a/modules/swagger-codegen/src/main/resources/typescript-node/tsconfig.mustache b/modules/swagger-codegen/src/main/resources/typescript-node/tsconfig.mustache index 9ae24570382a..2dd166566e97 100644 --- a/modules/swagger-codegen/src/main/resources/typescript-node/tsconfig.mustache +++ b/modules/swagger-codegen/src/main/resources/typescript-node/tsconfig.mustache @@ -1,13 +1,17 @@ { "compilerOptions": { - "module": "commonjs", - "noImplicitAny": true, - "suppressImplicitAnyIndexErrors": true, - "target": "ES5" + "module": "commonjs", + "noImplicitAny": false, + "suppressImplicitAnyIndexErrors": true, + "target": "ES5", + "moduleResolution": "node", + "removeComments": true, + "sourceMap": true, + "noLib": false, + "declaration": true }, "files": [ "api.ts", - "client.ts", "typings/main.d.ts" ] } diff --git a/modules/swagger-codegen/src/main/resources/typescript-node/typings.mustache b/modules/swagger-codegen/src/main/resources/typescript-node/typings.mustache index 0848dcffe31e..76c4cc8e6af3 100644 --- a/modules/swagger-codegen/src/main/resources/typescript-node/typings.mustache +++ b/modules/swagger-codegen/src/main/resources/typescript-node/typings.mustache @@ -1,5 +1,10 @@ { - "ambientDependencies": { - "core-js": "registry:dt/core-js#0.0.0+20160317120654" - } + "ambientDependencies": { + "bluebird": "registry:dt/bluebird#2.0.0+20160319051630", + "core-js": "registry:dt/core-js#0.0.0+20160317120654", + "node": "registry:dt/node#4.0.0+20160423143914" + }, + "dependencies": { + "request": "registry:npm/request#2.69.0+20160304121250" + } } \ No newline at end of file diff --git a/samples/client/petstore/typescript-node-with-npm/api.js b/samples/client/petstore/typescript-node-with-npm/api.js new file mode 100644 index 000000000000..9d7f94556f3b --- /dev/null +++ b/samples/client/petstore/typescript-node-with-npm/api.js @@ -0,0 +1,1185 @@ +"use strict"; +var request = require('request'); +var promise = require('bluebird'); +// =============================================== +// This file is autogenerated - Please do not edit +// =============================================== +/* tslint:disable:no-unused-variable */ +var Category = (function () { + function Category() { + } + return Category; +}()); +exports.Category = Category; +var Order = (function () { + function Order() { + } + return Order; +}()); +exports.Order = Order; +var Order; +(function (Order) { + (function (StatusEnum) { + StatusEnum[StatusEnum["placed"] = 'placed'] = "placed"; + StatusEnum[StatusEnum["approved"] = 'approved'] = "approved"; + StatusEnum[StatusEnum["delivered"] = 'delivered'] = "delivered"; + })(Order.StatusEnum || (Order.StatusEnum = {})); + var StatusEnum = Order.StatusEnum; +})(Order = exports.Order || (exports.Order = {})); +var Pet = (function () { + function Pet() { + } + return Pet; +}()); +exports.Pet = Pet; +var Pet; +(function (Pet) { + (function (StatusEnum) { + StatusEnum[StatusEnum["available"] = 'available'] = "available"; + StatusEnum[StatusEnum["pending"] = 'pending'] = "pending"; + StatusEnum[StatusEnum["sold"] = 'sold'] = "sold"; + })(Pet.StatusEnum || (Pet.StatusEnum = {})); + var StatusEnum = Pet.StatusEnum; +})(Pet = exports.Pet || (exports.Pet = {})); +var Tag = (function () { + function Tag() { + } + return Tag; +}()); +exports.Tag = Tag; +var User = (function () { + function User() { + } + return User; +}()); +exports.User = User; +var HttpBasicAuth = (function () { + function HttpBasicAuth() { + } + HttpBasicAuth.prototype.applyToRequest = function (requestOptions) { + requestOptions.auth = { + username: this.username, password: this.password + }; + }; + return HttpBasicAuth; +}()); +var ApiKeyAuth = (function () { + function ApiKeyAuth(location, paramName) { + this.location = location; + this.paramName = paramName; + } + ApiKeyAuth.prototype.applyToRequest = function (requestOptions) { + if (this.location == "query") { + requestOptions.qs[this.paramName] = this.apiKey; + } + else if (this.location == "header") { + requestOptions.headers[this.paramName] = this.apiKey; + } + }; + return ApiKeyAuth; +}()); +var OAuth = (function () { + function OAuth() { + } + OAuth.prototype.applyToRequest = function (requestOptions) { + requestOptions.headers["Authorization"] = "Bearer " + this.accessToken; + }; + return OAuth; +}()); +var VoidAuth = (function () { + function VoidAuth() { + } + VoidAuth.prototype.applyToRequest = function (requestOptions) { + // Do nothing + }; + return VoidAuth; +}()); +(function (PetApiApiKeys) { + PetApiApiKeys[PetApiApiKeys["api_key"] = 0] = "api_key"; +})(exports.PetApiApiKeys || (exports.PetApiApiKeys = {})); +var PetApiApiKeys = exports.PetApiApiKeys; +var PetApi = (function () { + function PetApi(basePathOrUsername, password, basePath) { + this.basePath = 'http://petstore.swagger.io/v2'; + this.defaultHeaders = {}; + this.authentications = { + 'default': new VoidAuth(), + 'petstore_auth': new OAuth(), + 'api_key': new ApiKeyAuth('header', 'api_key') + }; + if (password) { + if (basePath) { + this.basePath = basePath; + } + } + else { + if (basePathOrUsername) { + this.basePath = basePathOrUsername; + } + } + } + PetApi.prototype.setApiKey = function (key, value) { + this.authentications[PetApiApiKeys[key]].apiKey = value; + }; + Object.defineProperty(PetApi.prototype, "accessToken", { + set: function (token) { + this.authentications.petstore_auth.accessToken = token; + }, + enumerable: true, + configurable: true + }); + PetApi.prototype.extendObj = function (objA, objB) { + for (var key in objB) { + if (objB.hasOwnProperty(key)) { + objA[key] = objB[key]; + } + } + return objA; + }; + /** + * Add a new pet to the store + * + * @param body Pet object that needs to be added to the store + */ + PetApi.prototype.addPet = function (body) { + var localVarPath = this.basePath + '/pet'; + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + var useFormData = false; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'POST', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + 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, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + /** + * Deletes a pet + * + * @param petId Pet id to delete + * @param apiKey + */ + PetApi.prototype.deletePet = function (petId, apiKey) { + var localVarPath = this.basePath + '/pet/{petId}' + .replace('{' + 'petId' + '}', String(petId)); + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + // 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; + var useFormData = false; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'DELETE', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + 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, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + /** + * Finds Pets by status + * Multiple status values can be provided with comma seperated strings + * @param status Status values that need to be considered for filter + */ + PetApi.prototype.findPetsByStatus = function (status) { + var localVarPath = this.basePath + '/pet/findByStatus'; + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + if (status !== undefined) { + queryParameters['status'] = status; + } + var useFormData = false; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + 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, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + /** + * Finds Pets by tags + * Muliple tags can be provided with comma seperated strings. Use tag1, tag2, tag3 for testing. + * @param tags Tags to filter by + */ + PetApi.prototype.findPetsByTags = function (tags) { + var localVarPath = this.basePath + '/pet/findByTags'; + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + if (tags !== undefined) { + queryParameters['tags'] = tags; + } + var useFormData = false; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + 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, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + /** + * Find pet by ID + * Returns a pet when ID < 10. ID > 10 or nonintegers will simulate API error conditions + * @param petId ID of pet that needs to be fetched + */ + PetApi.prototype.getPetById = function (petId) { + var localVarPath = this.basePath + '/pet/{petId}' + .replace('{' + 'petId' + '}', String(petId)); + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + // 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.'); + } + var useFormData = false; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true + }; + this.authentications.petstore_auth.applyToRequest(requestOptions); + 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, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + /** + * Update an existing pet + * + * @param body Pet object that needs to be added to the store + */ + PetApi.prototype.updatePet = function (body) { + var localVarPath = this.basePath + '/pet'; + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + var useFormData = false; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'PUT', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + 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, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + /** + * Updates a pet in the store with form data + * + * @param petId ID of pet that needs to be updated + * @param name Updated name of the pet + * @param status Updated status of the pet + */ + PetApi.prototype.updatePetWithForm = function (petId, name, status) { + var localVarPath = this.basePath + '/pet/{petId}' + .replace('{' + 'petId' + '}', String(petId)); + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + // 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 updatePetWithForm.'); + } + var useFormData = false; + if (name !== undefined) { + formParams['name'] = name; + } + if (status !== undefined) { + formParams['status'] = status; + } + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'POST', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + 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, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + /** + * uploads an image + * + * @param petId ID of pet to update + * @param additionalMetadata Additional data to pass to server + * @param file file to upload + */ + PetApi.prototype.uploadFile = function (petId, additionalMetadata, file) { + var localVarPath = this.basePath + '/pet/{petId}/uploadImage' + .replace('{' + 'petId' + '}', String(petId)); + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + // 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 uploadFile.'); + } + var useFormData = false; + if (additionalMetadata !== undefined) { + formParams['additionalMetadata'] = additionalMetadata; + } + if (file !== undefined) { + formParams['file'] = file; + } + useFormData = true; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'POST', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + 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, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + return PetApi; +}()); +exports.PetApi = PetApi; +(function (StoreApiApiKeys) { + StoreApiApiKeys[StoreApiApiKeys["api_key"] = 0] = "api_key"; +})(exports.StoreApiApiKeys || (exports.StoreApiApiKeys = {})); +var StoreApiApiKeys = exports.StoreApiApiKeys; +var StoreApi = (function () { + function StoreApi(basePathOrUsername, password, basePath) { + this.basePath = 'http://petstore.swagger.io/v2'; + this.defaultHeaders = {}; + this.authentications = { + 'default': new VoidAuth(), + 'petstore_auth': new OAuth(), + 'api_key': new ApiKeyAuth('header', 'api_key') + }; + if (password) { + if (basePath) { + this.basePath = basePath; + } + } + else { + if (basePathOrUsername) { + this.basePath = basePathOrUsername; + } + } + } + StoreApi.prototype.setApiKey = function (key, value) { + this.authentications[StoreApiApiKeys[key]].apiKey = value; + }; + Object.defineProperty(StoreApi.prototype, "accessToken", { + set: function (token) { + this.authentications.petstore_auth.accessToken = token; + }, + enumerable: true, + configurable: true + }); + StoreApi.prototype.extendObj = function (objA, objB) { + for (var key in objB) { + if (objB.hasOwnProperty(key)) { + objA[key] = objB[key]; + } + } + return objA; + }; + /** + * Delete purchase order by ID + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * @param orderId ID of the order that needs to be deleted + */ + StoreApi.prototype.deleteOrder = function (orderId) { + var localVarPath = this.basePath + '/store/order/{orderId}' + .replace('{' + 'orderId' + '}', String(orderId)); + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + // verify required parameter 'orderId' is not null or undefined + if (orderId === null || orderId === undefined) { + throw new Error('Required parameter orderId was null or undefined when calling deleteOrder.'); + } + var useFormData = false; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'DELETE', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true + }; + this.authentications.default.applyToRequest(requestOptions); + if (Object.keys(formParams).length) { + if (useFormData) { + requestOptions.formData = formParams; + } + else { + requestOptions.form = formParams; + } + } + request(requestOptions, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + /** + * Returns pet inventories by status + * Returns a map of status codes to quantities + */ + StoreApi.prototype.getInventory = function () { + var localVarPath = this.basePath + '/store/inventory'; + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + var useFormData = false; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + 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, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + /** + * Find purchase order by ID + * For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + * @param orderId ID of pet that needs to be fetched + */ + StoreApi.prototype.getOrderById = function (orderId) { + var localVarPath = this.basePath + '/store/order/{orderId}' + .replace('{' + 'orderId' + '}', String(orderId)); + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + // verify required parameter 'orderId' is not null or undefined + if (orderId === null || orderId === undefined) { + throw new Error('Required parameter orderId was null or undefined when calling getOrderById.'); + } + var useFormData = false; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true + }; + this.authentications.default.applyToRequest(requestOptions); + if (Object.keys(formParams).length) { + if (useFormData) { + requestOptions.formData = formParams; + } + else { + requestOptions.form = formParams; + } + } + request(requestOptions, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + /** + * Place an order for a pet + * + * @param body order placed for purchasing the pet + */ + StoreApi.prototype.placeOrder = function (body) { + var localVarPath = this.basePath + '/store/order'; + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + var useFormData = false; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'POST', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true, + body: body + }; + this.authentications.default.applyToRequest(requestOptions); + if (Object.keys(formParams).length) { + if (useFormData) { + requestOptions.formData = formParams; + } + else { + requestOptions.form = formParams; + } + } + request(requestOptions, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + return StoreApi; +}()); +exports.StoreApi = StoreApi; +(function (UserApiApiKeys) { + UserApiApiKeys[UserApiApiKeys["api_key"] = 0] = "api_key"; +})(exports.UserApiApiKeys || (exports.UserApiApiKeys = {})); +var UserApiApiKeys = exports.UserApiApiKeys; +var UserApi = (function () { + function UserApi(basePathOrUsername, password, basePath) { + this.basePath = 'http://petstore.swagger.io/v2'; + this.defaultHeaders = {}; + this.authentications = { + 'default': new VoidAuth(), + 'petstore_auth': new OAuth(), + 'api_key': new ApiKeyAuth('header', 'api_key') + }; + if (password) { + if (basePath) { + this.basePath = basePath; + } + } + else { + if (basePathOrUsername) { + this.basePath = basePathOrUsername; + } + } + } + UserApi.prototype.setApiKey = function (key, value) { + this.authentications[UserApiApiKeys[key]].apiKey = value; + }; + Object.defineProperty(UserApi.prototype, "accessToken", { + set: function (token) { + this.authentications.petstore_auth.accessToken = token; + }, + enumerable: true, + configurable: true + }); + UserApi.prototype.extendObj = function (objA, objB) { + for (var key in objB) { + if (objB.hasOwnProperty(key)) { + objA[key] = objB[key]; + } + } + return objA; + }; + /** + * Create user + * This can only be done by the logged in user. + * @param body Created user object + */ + UserApi.prototype.createUser = function (body) { + var localVarPath = this.basePath + '/user'; + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + var useFormData = false; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'POST', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true, + body: body + }; + this.authentications.default.applyToRequest(requestOptions); + if (Object.keys(formParams).length) { + if (useFormData) { + requestOptions.formData = formParams; + } + else { + requestOptions.form = formParams; + } + } + request(requestOptions, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + /** + * Creates list of users with given input array + * + * @param body List of user object + */ + UserApi.prototype.createUsersWithArrayInput = function (body) { + var localVarPath = this.basePath + '/user/createWithArray'; + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + var useFormData = false; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'POST', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true, + body: body + }; + this.authentications.default.applyToRequest(requestOptions); + if (Object.keys(formParams).length) { + if (useFormData) { + requestOptions.formData = formParams; + } + else { + requestOptions.form = formParams; + } + } + request(requestOptions, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + /** + * Creates list of users with given input array + * + * @param body List of user object + */ + UserApi.prototype.createUsersWithListInput = function (body) { + var localVarPath = this.basePath + '/user/createWithList'; + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + var useFormData = false; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'POST', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true, + body: body + }; + this.authentications.default.applyToRequest(requestOptions); + if (Object.keys(formParams).length) { + if (useFormData) { + requestOptions.formData = formParams; + } + else { + requestOptions.form = formParams; + } + } + request(requestOptions, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + /** + * Delete user + * This can only be done by the logged in user. + * @param username The name that needs to be deleted + */ + UserApi.prototype.deleteUser = function (username) { + var localVarPath = this.basePath + '/user/{username}' + .replace('{' + 'username' + '}', String(username)); + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + // verify required parameter 'username' is not null or undefined + if (username === null || username === undefined) { + throw new Error('Required parameter username was null or undefined when calling deleteUser.'); + } + var useFormData = false; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'DELETE', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true + }; + this.authentications.default.applyToRequest(requestOptions); + if (Object.keys(formParams).length) { + if (useFormData) { + requestOptions.formData = formParams; + } + else { + requestOptions.form = formParams; + } + } + request(requestOptions, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + /** + * Get user by user name + * + * @param username The name that needs to be fetched. Use user1 for testing. + */ + UserApi.prototype.getUserByName = function (username) { + var localVarPath = this.basePath + '/user/{username}' + .replace('{' + 'username' + '}', String(username)); + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + // verify required parameter 'username' is not null or undefined + if (username === null || username === undefined) { + throw new Error('Required parameter username was null or undefined when calling getUserByName.'); + } + var useFormData = false; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true + }; + this.authentications.default.applyToRequest(requestOptions); + if (Object.keys(formParams).length) { + if (useFormData) { + requestOptions.formData = formParams; + } + else { + requestOptions.form = formParams; + } + } + request(requestOptions, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + /** + * Logs user into the system + * + * @param username The user name for login + * @param password The password for login in clear text + */ + UserApi.prototype.loginUser = function (username, password) { + var localVarPath = this.basePath + '/user/login'; + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + if (username !== undefined) { + queryParameters['username'] = username; + } + if (password !== undefined) { + queryParameters['password'] = password; + } + var useFormData = false; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true + }; + this.authentications.default.applyToRequest(requestOptions); + if (Object.keys(formParams).length) { + if (useFormData) { + requestOptions.formData = formParams; + } + else { + requestOptions.form = formParams; + } + } + request(requestOptions, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + /** + * Logs out current logged in user session + * + */ + UserApi.prototype.logoutUser = function () { + var localVarPath = this.basePath + '/user/logout'; + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + var useFormData = false; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true + }; + this.authentications.default.applyToRequest(requestOptions); + if (Object.keys(formParams).length) { + if (useFormData) { + requestOptions.formData = formParams; + } + else { + requestOptions.form = formParams; + } + } + request(requestOptions, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + /** + * Updated user + * This can only be done by the logged in user. + * @param username name that need to be deleted + * @param body Updated user object + */ + UserApi.prototype.updateUser = function (username, body) { + var localVarPath = this.basePath + '/user/{username}' + .replace('{' + 'username' + '}', String(username)); + var queryParameters = {}; + var headerParams = this.extendObj({}, this.defaultHeaders); + var formParams = {}; + // verify required parameter 'username' is not null or undefined + if (username === null || username === undefined) { + throw new Error('Required parameter username was null or undefined when calling updateUser.'); + } + var useFormData = false; + var localVarDeferred = promise.defer(); + var requestOptions = { + method: 'PUT', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true, + body: body + }; + this.authentications.default.applyToRequest(requestOptions); + if (Object.keys(formParams).length) { + if (useFormData) { + requestOptions.formData = formParams; + } + else { + requestOptions.form = formParams; + } + } + request(requestOptions, function (error, response, body) { + if (error) { + localVarDeferred.reject(error); + } + else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } + else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + return localVarDeferred.promise; + }; + return UserApi; +}()); +exports.UserApi = UserApi; +//# sourceMappingURL=api.js.map \ No newline at end of file diff --git a/samples/client/petstore/typescript-node-with-npm/api.js.map b/samples/client/petstore/typescript-node-with-npm/api.js.map new file mode 100644 index 000000000000..1a73cf1e8cd9 --- /dev/null +++ b/samples/client/petstore/typescript-node-with-npm/api.js.map @@ -0,0 +1 @@ +{"version":3,"file":"api.js","sourceRoot":"","sources":["api.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/samples/client/petstore/typescript-node-with-npm/api.ts b/samples/client/petstore/typescript-node-with-npm/api.ts new file mode 100644 index 000000000000..10aa9d5125c2 --- /dev/null +++ b/samples/client/petstore/typescript-node-with-npm/api.ts @@ -0,0 +1,1331 @@ +import request = require('request'); +import promise = require('bluebird'); +import http = require('http'); + +// =============================================== +// This file is autogenerated - Please do not edit +// =============================================== + +/* tslint:disable:no-unused-variable */ + +export class Category { + "id": number; + "name": string; +} + +export class Order { + "id": number; + "petId": number; + "quantity": number; + "shipDate": Date; + /** + * Order Status + */ + "status": Order.StatusEnum; + "complete": boolean; +} + +export namespace Order { + export enum StatusEnum { + placed = 'placed', + approved = 'approved', + delivered = 'delivered' + } +} +export class Pet { + "id": number; + "category": Category; + "name": string; + "photoUrls": Array; + "tags": Array; + /** + * pet status in the store + */ + "status": Pet.StatusEnum; +} + +export namespace Pet { + export enum StatusEnum { + available = 'available', + pending = 'pending', + sold = 'sold' + } +} +export class Tag { + "id": number; + "name": string; +} + +export class User { + "id": number; + "username": string; + "firstName": string; + "lastName": string; + "email": string; + "password": string; + "phone": string; + /** + * User Status + */ + "userStatus": number; +} + + +interface Authentication { + /** + * Apply authentication settings to header and query params. + */ + applyToRequest(requestOptions: request.Options): void; +} + +class HttpBasicAuth implements Authentication { + public username: string; + public password: string; + applyToRequest(requestOptions: request.Options): void { + requestOptions.auth = { + username: this.username, password: this.password + } + } +} + +class ApiKeyAuth implements Authentication { + public apiKey: string; + + constructor(private location: string, private paramName: string) { + } + + applyToRequest(requestOptions: request.Options): void { + if (this.location == "query") { + (requestOptions.qs)[this.paramName] = this.apiKey; + } else if (this.location == "header") { + requestOptions.headers[this.paramName] = this.apiKey; + } + } +} + +class OAuth implements Authentication { + public accessToken: string; + + applyToRequest(requestOptions: request.Options): void { + requestOptions.headers["Authorization"] = "Bearer " + this.accessToken; + } +} + +class VoidAuth implements Authentication { + public username: string; + public password: string; + applyToRequest(requestOptions: request.Options): void { + // Do nothing + } +} + +export enum PetApiApiKeys { + api_key, +} + +export class PetApi { + protected basePath = 'http://petstore.swagger.io/v2'; + protected defaultHeaders : any = {}; + + protected authentications = { + 'default': new VoidAuth(), + 'petstore_auth': new OAuth(), + 'api_key': new ApiKeyAuth('header', 'api_key'), + } + + constructor(basePath?: string); + constructor(basePathOrUsername: string, password?: string, basePath?: string) { + if (password) { + if (basePath) { + this.basePath = basePath; + } + } else { + if (basePathOrUsername) { + this.basePath = basePathOrUsername + } + } + } + + public setApiKey(key: PetApiApiKeys, value: string) { + this.authentications[PetApiApiKeys[key]].apiKey = value; + } + + set accessToken(token: string) { + this.authentications.petstore_auth.accessToken = token; + } + private extendObj(objA: T1, objB: T2) { + for(let key in objB){ + if(objB.hasOwnProperty(key)){ + objA[key] = objB[key]; + } + } + return objA; + } + /** + * Add a new pet to the store + * + * @param body Pet object that needs to be added to the store + */ + public addPet (body?: Pet) : Promise<{ response: http.ClientResponse; body?: any; }> { + const localVarPath = this.basePath + '/pet'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; + + + let useFormData = false; + + let localVarDeferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { + method: 'POST', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + 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) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } + /** + * Deletes a pet + * + * @param petId Pet id to delete + * @param apiKey + */ + public deletePet (petId: number, apiKey?: string) : Promise<{ response: http.ClientResponse; body?: any; }> { + const localVarPath = 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 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 useFormData = false; + + let localVarDeferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { + method: 'DELETE', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + 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) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } + /** + * Finds Pets by status + * Multiple status values can be provided with comma seperated strings + * @param status Status values that need to be considered for filter + */ + public findPetsByStatus (status?: Array) : Promise<{ response: http.ClientResponse; body: Array; }> { + const localVarPath = 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 localVarDeferred = promise.defer<{ response: http.ClientResponse; body: Array; }>(); + + let requestOptions: request.Options = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + 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) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } + /** + * Finds Pets by tags + * Muliple tags can be provided with comma seperated strings. Use tag1, tag2, tag3 for testing. + * @param tags Tags to filter by + */ + public findPetsByTags (tags?: Array) : Promise<{ response: http.ClientResponse; body: Array; }> { + const localVarPath = 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 localVarDeferred = promise.defer<{ response: http.ClientResponse; body: Array; }>(); + + let requestOptions: request.Options = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + 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) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } + /** + * Find pet by ID + * Returns a pet when ID < 10. ID > 10 or nonintegers will simulate API error conditions + * @param petId ID of pet that needs to be fetched + */ + public getPetById (petId: number) : Promise<{ response: http.ClientResponse; body: Pet; }> { + const localVarPath = 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 not null or undefined + if (petId === null || petId === undefined) { + throw new Error('Required parameter petId was null or undefined when calling getPetById.'); + } + + let useFormData = false; + + let localVarDeferred = promise.defer<{ response: http.ClientResponse; body: Pet; }>(); + + let requestOptions: request.Options = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true, + } + + this.authentications.petstore_auth.applyToRequest(requestOptions); + + 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) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } + /** + * Update an existing pet + * + * @param body Pet object that needs to be added to the store + */ + public updatePet (body?: Pet) : Promise<{ response: http.ClientResponse; body?: any; }> { + const localVarPath = this.basePath + '/pet'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; + + + let useFormData = false; + + let localVarDeferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { + method: 'PUT', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + 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) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } + /** + * Updates a pet in the store with form data + * + * @param petId ID of pet that needs to be updated + * @param name Updated name of the pet + * @param status Updated status of the pet + */ + public updatePetWithForm (petId: string, name?: string, status?: string) : Promise<{ response: http.ClientResponse; body?: any; }> { + const localVarPath = 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 not null or undefined + if (petId === null || petId === undefined) { + throw new Error('Required parameter petId was null or undefined when calling updatePetWithForm.'); + } + + let useFormData = false; + + if (name !== undefined) { + formParams['name'] = name; + } + + if (status !== undefined) { + formParams['status'] = status; + } + + let localVarDeferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { + method: 'POST', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + 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) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } + /** + * uploads an image + * + * @param petId ID of pet to update + * @param additionalMetadata Additional data to pass to server + * @param file file to upload + */ + public uploadFile (petId: number, additionalMetadata?: string, file?: any) : Promise<{ response: http.ClientResponse; body?: any; }> { + const localVarPath = 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 not null or undefined + if (petId === null || petId === undefined) { + throw new Error('Required parameter petId was null or undefined when calling uploadFile.'); + } + + let useFormData = false; + + if (additionalMetadata !== undefined) { + formParams['additionalMetadata'] = additionalMetadata; + } + + if (file !== undefined) { + formParams['file'] = file; + } + useFormData = true; + + let localVarDeferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { + method: 'POST', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + 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) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } +} +export enum StoreApiApiKeys { + api_key, +} + +export class StoreApi { + protected basePath = 'http://petstore.swagger.io/v2'; + protected defaultHeaders : any = {}; + + protected authentications = { + 'default': new VoidAuth(), + 'petstore_auth': new OAuth(), + 'api_key': new ApiKeyAuth('header', 'api_key'), + } + + constructor(basePath?: string); + constructor(basePathOrUsername: string, password?: string, basePath?: string) { + if (password) { + if (basePath) { + this.basePath = basePath; + } + } else { + if (basePathOrUsername) { + this.basePath = basePathOrUsername + } + } + } + + public setApiKey(key: StoreApiApiKeys, value: string) { + this.authentications[StoreApiApiKeys[key]].apiKey = value; + } + + set accessToken(token: string) { + this.authentications.petstore_auth.accessToken = token; + } + private extendObj(objA: T1, objB: T2) { + for(let key in objB){ + if(objB.hasOwnProperty(key)){ + objA[key] = objB[key]; + } + } + return objA; + } + /** + * Delete purchase order by ID + * For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + * @param orderId ID of the order that needs to be deleted + */ + public deleteOrder (orderId: string) : Promise<{ response: http.ClientResponse; body?: any; }> { + const localVarPath = 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 not null or undefined + if (orderId === null || orderId === undefined) { + throw new Error('Required parameter orderId was null or undefined when calling deleteOrder.'); + } + + let useFormData = false; + + let localVarDeferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { + method: 'DELETE', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true, + } + + this.authentications.default.applyToRequest(requestOptions); + + if (Object.keys(formParams).length) { + if (useFormData) { + (requestOptions).formData = formParams; + } else { + requestOptions.form = formParams; + } + } + + request(requestOptions, (error, response, body) => { + if (error) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } + /** + * Returns pet inventories by status + * Returns a map of status codes to quantities + */ + public getInventory () : Promise<{ response: http.ClientResponse; body: { [key: string]: number; }; }> { + const localVarPath = this.basePath + '/store/inventory'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; + + + let useFormData = false; + + let localVarDeferred = promise.defer<{ response: http.ClientResponse; body: { [key: string]: number; }; }>(); + + let requestOptions: request.Options = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + 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) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } + /** + * Find purchase order by ID + * For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + * @param orderId ID of pet that needs to be fetched + */ + public getOrderById (orderId: string) : Promise<{ response: http.ClientResponse; body: Order; }> { + const localVarPath = 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 not null or undefined + if (orderId === null || orderId === undefined) { + throw new Error('Required parameter orderId was null or undefined when calling getOrderById.'); + } + + let useFormData = false; + + let localVarDeferred = promise.defer<{ response: http.ClientResponse; body: Order; }>(); + + let requestOptions: request.Options = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true, + } + + this.authentications.default.applyToRequest(requestOptions); + + if (Object.keys(formParams).length) { + if (useFormData) { + (requestOptions).formData = formParams; + } else { + requestOptions.form = formParams; + } + } + + request(requestOptions, (error, response, body) => { + if (error) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } + /** + * Place an order for a pet + * + * @param body order placed for purchasing the pet + */ + public placeOrder (body?: Order) : Promise<{ response: http.ClientResponse; body: Order; }> { + const localVarPath = this.basePath + '/store/order'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; + + + let useFormData = false; + + let localVarDeferred = promise.defer<{ response: http.ClientResponse; body: Order; }>(); + + let requestOptions: request.Options = { + method: 'POST', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true, + body: body, + } + + this.authentications.default.applyToRequest(requestOptions); + + if (Object.keys(formParams).length) { + if (useFormData) { + (requestOptions).formData = formParams; + } else { + requestOptions.form = formParams; + } + } + + request(requestOptions, (error, response, body) => { + if (error) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } +} +export enum UserApiApiKeys { + api_key, +} + +export class UserApi { + protected basePath = 'http://petstore.swagger.io/v2'; + protected defaultHeaders : any = {}; + + protected authentications = { + 'default': new VoidAuth(), + 'petstore_auth': new OAuth(), + 'api_key': new ApiKeyAuth('header', 'api_key'), + } + + constructor(basePath?: string); + constructor(basePathOrUsername: string, password?: string, basePath?: string) { + if (password) { + if (basePath) { + this.basePath = basePath; + } + } else { + if (basePathOrUsername) { + this.basePath = basePathOrUsername + } + } + } + + public setApiKey(key: UserApiApiKeys, value: string) { + this.authentications[UserApiApiKeys[key]].apiKey = value; + } + + set accessToken(token: string) { + this.authentications.petstore_auth.accessToken = token; + } + private extendObj(objA: T1, objB: T2) { + for(let key in objB){ + if(objB.hasOwnProperty(key)){ + objA[key] = objB[key]; + } + } + return objA; + } + /** + * Create user + * This can only be done by the logged in user. + * @param body Created user object + */ + public createUser (body?: User) : Promise<{ response: http.ClientResponse; body?: any; }> { + const localVarPath = this.basePath + '/user'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; + + + let useFormData = false; + + let localVarDeferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { + method: 'POST', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true, + body: body, + } + + this.authentications.default.applyToRequest(requestOptions); + + if (Object.keys(formParams).length) { + if (useFormData) { + (requestOptions).formData = formParams; + } else { + requestOptions.form = formParams; + } + } + + request(requestOptions, (error, response, body) => { + if (error) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } + /** + * Creates list of users with given input array + * + * @param body List of user object + */ + public createUsersWithArrayInput (body?: Array) : Promise<{ response: http.ClientResponse; body?: any; }> { + const localVarPath = this.basePath + '/user/createWithArray'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; + + + let useFormData = false; + + let localVarDeferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { + method: 'POST', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true, + body: body, + } + + this.authentications.default.applyToRequest(requestOptions); + + if (Object.keys(formParams).length) { + if (useFormData) { + (requestOptions).formData = formParams; + } else { + requestOptions.form = formParams; + } + } + + request(requestOptions, (error, response, body) => { + if (error) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } + /** + * Creates list of users with given input array + * + * @param body List of user object + */ + public createUsersWithListInput (body?: Array) : Promise<{ response: http.ClientResponse; body?: any; }> { + const localVarPath = this.basePath + '/user/createWithList'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; + + + let useFormData = false; + + let localVarDeferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { + method: 'POST', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true, + body: body, + } + + this.authentications.default.applyToRequest(requestOptions); + + if (Object.keys(formParams).length) { + if (useFormData) { + (requestOptions).formData = formParams; + } else { + requestOptions.form = formParams; + } + } + + request(requestOptions, (error, response, body) => { + if (error) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } + /** + * Delete user + * This can only be done by the logged in user. + * @param username The name that needs to be deleted + */ + public deleteUser (username: string) : Promise<{ response: http.ClientResponse; body?: any; }> { + const localVarPath = 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 not null or undefined + if (username === null || username === undefined) { + throw new Error('Required parameter username was null or undefined when calling deleteUser.'); + } + + let useFormData = false; + + let localVarDeferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { + method: 'DELETE', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true, + } + + this.authentications.default.applyToRequest(requestOptions); + + if (Object.keys(formParams).length) { + if (useFormData) { + (requestOptions).formData = formParams; + } else { + requestOptions.form = formParams; + } + } + + request(requestOptions, (error, response, body) => { + if (error) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } + /** + * Get user by user name + * + * @param username The name that needs to be fetched. Use user1 for testing. + */ + public getUserByName (username: string) : Promise<{ response: http.ClientResponse; body: User; }> { + const localVarPath = 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 not null or undefined + if (username === null || username === undefined) { + throw new Error('Required parameter username was null or undefined when calling getUserByName.'); + } + + let useFormData = false; + + let localVarDeferred = promise.defer<{ response: http.ClientResponse; body: User; }>(); + + let requestOptions: request.Options = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true, + } + + this.authentications.default.applyToRequest(requestOptions); + + if (Object.keys(formParams).length) { + if (useFormData) { + (requestOptions).formData = formParams; + } else { + requestOptions.form = formParams; + } + } + + request(requestOptions, (error, response, body) => { + if (error) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } + /** + * Logs user into the system + * + * @param username The user name for login + * @param password The password for login in clear text + */ + public loginUser (username?: string, password?: string) : Promise<{ response: http.ClientResponse; body: string; }> { + const localVarPath = this.basePath + '/user/login'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; + + + if (username !== undefined) { + queryParameters['username'] = username; + } + + if (password !== undefined) { + queryParameters['password'] = password; + } + + let useFormData = false; + + let localVarDeferred = promise.defer<{ response: http.ClientResponse; body: string; }>(); + + let requestOptions: request.Options = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true, + } + + this.authentications.default.applyToRequest(requestOptions); + + if (Object.keys(formParams).length) { + if (useFormData) { + (requestOptions).formData = formParams; + } else { + requestOptions.form = formParams; + } + } + + request(requestOptions, (error, response, body) => { + if (error) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } + /** + * Logs out current logged in user session + * + */ + public logoutUser () : Promise<{ response: http.ClientResponse; body?: any; }> { + const localVarPath = this.basePath + '/user/logout'; + let queryParameters: any = {}; + let headerParams: any = this.extendObj({}, this.defaultHeaders); + let formParams: any = {}; + + + let useFormData = false; + + let localVarDeferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { + method: 'GET', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true, + } + + this.authentications.default.applyToRequest(requestOptions); + + if (Object.keys(formParams).length) { + if (useFormData) { + (requestOptions).formData = formParams; + } else { + requestOptions.form = formParams; + } + } + + request(requestOptions, (error, response, body) => { + if (error) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } + /** + * Updated user + * This can only be done by the logged in user. + * @param username name that need to be deleted + * @param body Updated user object + */ + public updateUser (username: string, body?: User) : Promise<{ response: http.ClientResponse; body?: any; }> { + const localVarPath = 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 not null or undefined + if (username === null || username === undefined) { + throw new Error('Required parameter username was null or undefined when calling updateUser.'); + } + + let useFormData = false; + + let localVarDeferred = promise.defer<{ response: http.ClientResponse; body?: any; }>(); + + let requestOptions: request.Options = { + method: 'PUT', + qs: queryParameters, + headers: headerParams, + uri: localVarPath, + json: true, + body: body, + } + + this.authentications.default.applyToRequest(requestOptions); + + if (Object.keys(formParams).length) { + if (useFormData) { + (requestOptions).formData = formParams; + } else { + requestOptions.form = formParams; + } + } + + request(requestOptions, (error, response, body) => { + if (error) { + localVarDeferred.reject(error); + } else { + if (response.statusCode >= 200 && response.statusCode <= 299) { + localVarDeferred.resolve({ response: response, body: body }); + } else { + localVarDeferred.reject({ response: response, body: body }); + } + } + }); + + return localVarDeferred.promise; + } +} diff --git a/samples/client/petstore/typescript-node-with-npm/git_push.sh b/samples/client/petstore/typescript-node-with-npm/git_push.sh new file mode 100644 index 000000000000..1a36388db023 --- /dev/null +++ b/samples/client/petstore/typescript-node-with-npm/git_push.sh @@ -0,0 +1,52 @@ +#!/bin/sh +# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/ +# +# Usage example: /bin/sh ./git_push.sh wing328 swagger-petstore-perl "minor update" + +git_user_id=$1 +git_repo_id=$2 +release_note=$3 + +if [ "$git_user_id" = "" ]; then + git_user_id="YOUR_GIT_USR_ID" + echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id" +fi + +if [ "$git_repo_id" = "" ]; then + git_repo_id="YOUR_GIT_REPO_ID" + echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id" +fi + +if [ "$release_note" = "" ]; then + release_note="Minor update" + echo "[INFO] No command line input provided. Set \$release_note to $release_note" +fi + +# Initialize the local directory as a Git repository +git init + +# Adds the files in the local repository and stages them for commit. +git add . + +# Commits the tracked changes and prepares them to be pushed to a remote repository. +git commit -m "$release_note" + +# Sets the new remote +git_remote=`git remote` +if [ "$git_remote" = "" ]; then # git remote not defined + + if [ "$GIT_TOKEN" = "" ]; then + echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git crediential in your environment." + git remote add origin https://github.com/${git_user_id}/${git_repo_id}.git + else + git remote add origin https://${git_user_id}:${GIT_TOKEN}@github.com/${git_user_id}/${git_repo_id}.git + fi + +fi + +git pull origin master + +# Pushes (Forces) the changes in the local repository up to the remote repository +echo "Git pushing to https://github.com/${git_user_id}/${git_repo_id}.git" +git push origin master 2>&1 | grep -v 'To https' + diff --git a/samples/client/petstore/typescript-node-with-npm/package.json b/samples/client/petstore/typescript-node-with-npm/package.json new file mode 100644 index 000000000000..01213e7e2127 --- /dev/null +++ b/samples/client/petstore/typescript-node-with-npm/package.json @@ -0,0 +1,22 @@ +{ + "name": "@swagger/angular2-typescript-petstore", + "version": "0.0.1-SNAPSHOT.201604272308", + "description": "NodeJS client for @swagger/angular2-typescript-petstore", + "main": "api.js", + "scripts": { + "build": "typings install && tsc" + }, + "author": "Mads M. Tandrup", + "license": "Apache 2.0", + "dependencies": { + "bluebird": "^3.3.5", + "request": "^2.72.0" + }, + "devDependencies": { + "typescript": "^1.8.10", + "typings": "^0.8.1" + }, + "publishConfig":{ + "registry":"https://skimdb.npmjs.com/registry" + } +} diff --git a/samples/client/petstore/typescript-node-with-npm/tsconfig.json b/samples/client/petstore/typescript-node-with-npm/tsconfig.json new file mode 100644 index 000000000000..2dd166566e97 --- /dev/null +++ b/samples/client/petstore/typescript-node-with-npm/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "module": "commonjs", + "noImplicitAny": false, + "suppressImplicitAnyIndexErrors": true, + "target": "ES5", + "moduleResolution": "node", + "removeComments": true, + "sourceMap": true, + "noLib": false, + "declaration": true + }, + "files": [ + "api.ts", + "typings/main.d.ts" + ] +} + diff --git a/samples/client/petstore/typescript-node-with-npm/typings.json b/samples/client/petstore/typescript-node-with-npm/typings.json new file mode 100644 index 000000000000..76c4cc8e6af3 --- /dev/null +++ b/samples/client/petstore/typescript-node-with-npm/typings.json @@ -0,0 +1,10 @@ +{ + "ambientDependencies": { + "bluebird": "registry:dt/bluebird#2.0.0+20160319051630", + "core-js": "registry:dt/core-js#0.0.0+20160317120654", + "node": "registry:dt/node#4.0.0+20160423143914" + }, + "dependencies": { + "request": "registry:npm/request#2.69.0+20160304121250" + } +} \ No newline at end of file