forked from loafle/openapi-generator-original
Typescript Property Renaming Fix (#4264)
* Implemented fix for missing json to property mapping in typescript-node The previous version did not parse the JSON-Response at all, so that properties, which where renamed (e. g.due to modelPropertyNaming config option), were not correctly parsed. E. g.: modelPropertyNaming=camelCase & property 'mounted_at' in json, would be renamed to mountedAt in the model. This was not parsed at all in the typescript-node client api, so that the actual model still had the mounted_at property, but not mountedAt. See #2766 for additional details * Updated samples for typescript-node * Reverted initial changes to api.mustache * Draft for object serializer for typescript-node * Fixed missing variable error in ObjectSerializer in typescript-node * Fix for body return type * Fixed attributeTypeMaps when polymorphism is used * Added ObjectSerializer support for polymorphism * Code formatting in typescript-node api.mustache * Fixed primitive type bug & added tests for ts-node - primitives were serialized as strings instead of their respective type - added test case for pet * Code Formatting in ts-node client test See samples/client/petstore/typescript-node/npm/client.ts * Replaced tabs with 4 spaces and improved code formatting * Recreated security test for typescript-node * Read sample.png with fs.readFileSync instead of a stream
This commit is contained in:
1
modules/swagger-codegen/.gitignore
vendored
1
modules/swagger-codegen/.gitignore
vendored
@@ -1,2 +1,3 @@
|
||||
/.settings/
|
||||
/test-output/
|
||||
/bin/
|
||||
|
||||
@@ -12,6 +12,120 @@ let defaultBasePath = '{{basePath}}';
|
||||
// ===============================================
|
||||
|
||||
/* tslint:disable:no-unused-variable */
|
||||
let primitives = [
|
||||
"string",
|
||||
"boolean",
|
||||
"double",
|
||||
"integer",
|
||||
"long",
|
||||
"float",
|
||||
"number",
|
||||
"any"
|
||||
];
|
||||
|
||||
class ObjectSerializer {
|
||||
|
||||
public static findCorrectType(data: any, expectedType: string) {
|
||||
if (data == undefined) {
|
||||
return expectedType;
|
||||
} else if (primitives.indexOf(expectedType.toLowerCase()) !== -1) {
|
||||
return expectedType;
|
||||
} else if (expectedType === "Date") {
|
||||
return expectedType;
|
||||
} else {
|
||||
if (enumsMap[expectedType]) {
|
||||
return expectedType;
|
||||
}
|
||||
|
||||
if (!typeMap[expectedType]) {
|
||||
return expectedType; // w/e we don't know the type
|
||||
}
|
||||
|
||||
// Check the discriminator
|
||||
let discriminatorProperty = typeMap[expectedType].discriminator;
|
||||
if (discriminatorProperty == null) {
|
||||
return expectedType; // the type does not have a discriminator. use it.
|
||||
} else {
|
||||
if (data[discriminatorProperty]) {
|
||||
return data[discriminatorProperty]; // use the type given in the discriminator
|
||||
} else {
|
||||
return expectedType; // discriminator was not present (or an empty string)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static serialize(data: any, type: string) {
|
||||
if (data == undefined) {
|
||||
return data;
|
||||
} else if (primitives.indexOf(type.toLowerCase()) !== -1) {
|
||||
return data;
|
||||
} else if (type.lastIndexOf("Array<", 0) === 0) { // string.startsWith pre es6
|
||||
let subType: string = type.replace("Array<", ""); // Array<Type> => Type>
|
||||
subType = subType.substring(0, subType.length - 1); // Type> => Type
|
||||
let transformedData = [];
|
||||
for (let index in data) {
|
||||
let date = data[index];
|
||||
transformedData.push(ObjectSerializer.serialize(date, subType));
|
||||
}
|
||||
return transformedData;
|
||||
} else if (type === "Date") {
|
||||
return data.toString();
|
||||
} else {
|
||||
if (enumsMap[type]) {
|
||||
return data;
|
||||
}
|
||||
if (!typeMap[type]) { // in case we dont know the type
|
||||
return data;
|
||||
}
|
||||
|
||||
// get the map for the correct type.
|
||||
let attributeTypes = typeMap[type].getAttributeTypeMap();
|
||||
let instance = {};
|
||||
for (let index in attributeTypes) {
|
||||
let attributeType = attributeTypes[index];
|
||||
instance[attributeType.baseName] = ObjectSerializer.serialize(data[attributeType.name], attributeType.type);
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
|
||||
public static deserialize(data: any, type: string) {
|
||||
// polymorphism may change the actual type.
|
||||
type = ObjectSerializer.findCorrectType(data, type);
|
||||
if (data == undefined) {
|
||||
return data;
|
||||
} else if (primitives.indexOf(type.toLowerCase()) !== -1) {
|
||||
return data;
|
||||
} else if (type.lastIndexOf("Array<", 0) === 0) { // string.startsWith pre es6
|
||||
let subType: string = type.replace("Array<", ""); // Array<Type> => Type>
|
||||
subType = subType.substring(0, subType.length - 1); // Type> => Type
|
||||
let transformedData = [];
|
||||
for (let index in data) {
|
||||
let date = data[index];
|
||||
transformedData.push(ObjectSerializer.deserialize(date, subType));
|
||||
}
|
||||
return transformedData;
|
||||
} else if (type === "Date") {
|
||||
return new Date(data);
|
||||
} else {
|
||||
if (enumsMap[type]) {// is Enum
|
||||
return data;
|
||||
}
|
||||
|
||||
if (!typeMap[type]) { // dont know the type
|
||||
return data;
|
||||
}
|
||||
let instance = new typeMap[type]();
|
||||
let attributeTypes = typeMap[type].getAttributeTypeMap();
|
||||
for (let index in attributeTypes) {
|
||||
let attributeType = attributeTypes[index];
|
||||
instance[attributeType.name] = ObjectSerializer.deserialize(data[attributeType.baseName], attributeType.type);
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
@@ -29,6 +143,33 @@ export class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{
|
||||
{{/description}}
|
||||
'{{name}}': {{#isEnum}}{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}};
|
||||
{{/vars}}
|
||||
|
||||
{{#discriminator}}
|
||||
static discriminator = {{discriminator}};
|
||||
{{/discriminator}}
|
||||
{{^discriminator}}
|
||||
static discriminator = undefined;
|
||||
{{/discriminator}}
|
||||
|
||||
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
|
||||
{{#vars}}
|
||||
{
|
||||
"name": "{{name}}",
|
||||
"baseName": "{{baseName}}",
|
||||
"type": "{{#isEnum}}{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{datatype}}}{{/isEnum}}"
|
||||
}{{#hasMore}},
|
||||
{{/hasMore}}
|
||||
{{/vars}}
|
||||
];
|
||||
|
||||
static getAttributeTypeMap() {
|
||||
{{#parent}}
|
||||
return super.getAttributeTypeMap().concat({{classname}}.attributeTypeMap);
|
||||
{{/parent}}
|
||||
{{^parent}}
|
||||
return {{classname}}.attributeTypeMap;
|
||||
{{/parent}}
|
||||
}
|
||||
}
|
||||
|
||||
{{#hasEnums}}
|
||||
@@ -49,6 +190,28 @@ export namespace {{classname}} {
|
||||
{{/model}}
|
||||
{{/models}}
|
||||
|
||||
let enumsMap = {
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
{{#hasEnums}}
|
||||
{{#vars}}
|
||||
{{#isEnum}}
|
||||
"{{datatypeWithEnum}}": {{datatypeWithEnum}},
|
||||
{{/isEnum}}
|
||||
{{/vars}}
|
||||
{{/hasEnums}}
|
||||
{{/model}}
|
||||
{{/models}}
|
||||
}
|
||||
|
||||
let typeMap = {
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
"{{classname}}": {{classname}},
|
||||
{{/model}}
|
||||
{{/models}}
|
||||
}
|
||||
|
||||
export interface Authentication {
|
||||
/**
|
||||
* Apply authentication settings to header and query params.
|
||||
@@ -212,19 +375,24 @@ export class {{classname}} {
|
||||
{{/required}}{{/allParams}}
|
||||
{{#queryParams}}
|
||||
if ({{paramName}} !== undefined) {
|
||||
queryParameters['{{baseName}}'] = {{paramName}};
|
||||
queryParameters['{{baseName}}'] = ObjectSerializer.serialize({{paramName}}, "{{dataType}}");
|
||||
}
|
||||
|
||||
{{/queryParams}}
|
||||
{{#headerParams}}
|
||||
headerParams['{{baseName}}'] = {{paramName}};
|
||||
|
||||
headerParams['{{baseName}}'] = ObjectSerializer.serialize({{paramName}}, "{{dataType}}");
|
||||
{{/headerParams}}
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
{{#formParams}}
|
||||
if ({{paramName}} !== undefined) {
|
||||
{{#isFile}}
|
||||
formParams['{{baseName}}'] = {{paramName}};
|
||||
{{/isFile}}
|
||||
{{^isFile}}
|
||||
formParams['{{baseName}}'] = ObjectSerializer.serialize({{paramName}}, "{{dataType}}");
|
||||
{{/isFile}}
|
||||
}
|
||||
{{#isFile}}
|
||||
useFormData = true;
|
||||
@@ -244,7 +412,7 @@ export class {{classname}} {
|
||||
encoding: null,
|
||||
{{/isResponseFile}}
|
||||
{{#bodyParam}}
|
||||
body: {{paramName}},
|
||||
body: ObjectSerializer.serialize({{paramName}}, "{{dataType}}")
|
||||
{{/bodyParam}}
|
||||
};
|
||||
|
||||
@@ -266,6 +434,9 @@ export class {{classname}} {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
{{#returnType}}
|
||||
body = ObjectSerializer.deserialize(body, "{{returnType}}");
|
||||
{{/returnType}}
|
||||
if (response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
|
||||
@@ -1,50 +1,172 @@
|
||||
/**
|
||||
* Swagger Petstore *_/ ' \" =end \\r\\n \\n \\r
|
||||
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ *_/ ' \" =end
|
||||
* Swagger Petstore *_/ ' \" =end -- \\r\\n \\n \\r
|
||||
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ *_/ ' \" =end --
|
||||
*
|
||||
* OpenAPI spec version: 1.0.0 *_/ ' \" =end \\r\\n \\n \\r
|
||||
* Contact: apiteam@swagger.io *_/ ' \" =end \\r\\n \\n \\r
|
||||
* OpenAPI spec version: 1.0.0 *_/ ' \" =end -- \\r\\n \\n \\r
|
||||
* Contact: apiteam@swagger.io *_/ ' \" =end -- \\r\\n \\n \\r
|
||||
*
|
||||
* NOTE: This class is auto generated by the swagger code generator program.
|
||||
* https://github.com/swagger-api/swagger-codegen.git
|
||||
* Do not edit the class manually.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import request = require('request');
|
||||
import http = require('http');
|
||||
import Promise = require('bluebird');
|
||||
|
||||
let defaultBasePath = 'https://petstore.swagger.io *_/ ' \" =end \\r\\n \\n \\r/v2 *_/ ' \" =end \\r\\n \\n \\r';
|
||||
let defaultBasePath = 'https://petstore.swagger.io *_/ ' \" =end -- \\r\\n \\n \\r/v2 *_/ ' \" =end -- \\r\\n \\n \\r';
|
||||
|
||||
// ===============================================
|
||||
// This file is autogenerated - Please do not edit
|
||||
// ===============================================
|
||||
|
||||
/* tslint:disable:no-unused-variable */
|
||||
let primitives = [
|
||||
"string",
|
||||
"boolean",
|
||||
"double",
|
||||
"integer",
|
||||
"long",
|
||||
"float",
|
||||
"number",
|
||||
"any"
|
||||
];
|
||||
|
||||
class ObjectSerializer {
|
||||
|
||||
public static findCorrectType(data: any, expectedType: string) {
|
||||
if (data == undefined) {
|
||||
return expectedType;
|
||||
} else if (primitives.indexOf(expectedType.toLowerCase()) !== -1) {
|
||||
return expectedType;
|
||||
} else if (expectedType === "Date") {
|
||||
return expectedType;
|
||||
} else {
|
||||
if (enumsMap[expectedType]) {
|
||||
return expectedType;
|
||||
}
|
||||
|
||||
if (!typeMap[expectedType]) {
|
||||
return expectedType; // w/e we don't know the type
|
||||
}
|
||||
|
||||
// Check the discriminator
|
||||
let discriminatorProperty = typeMap[expectedType].discriminator;
|
||||
if (discriminatorProperty == null) {
|
||||
return expectedType; // the type does not have a discriminator. use it.
|
||||
} else {
|
||||
if (data[discriminatorProperty]) {
|
||||
return data[discriminatorProperty]; // use the type given in the discriminator
|
||||
} else {
|
||||
return expectedType; // discriminator was not present (or an empty string)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static serialize(data: any, type: string) {
|
||||
if (data == undefined) {
|
||||
return data;
|
||||
} else if (primitives.indexOf(type.toLowerCase()) !== -1) {
|
||||
return data;
|
||||
} else if (type.lastIndexOf("Array<", 0) === 0) { // string.startsWith pre es6
|
||||
let subType: string = type.replace("Array<", ""); // Array<Type> => Type>
|
||||
subType = subType.substring(0, subType.length - 1); // Type> => Type
|
||||
let transformedData = [];
|
||||
for (let index in data) {
|
||||
let date = data[index];
|
||||
transformedData.push(ObjectSerializer.serialize(date, subType));
|
||||
}
|
||||
return transformedData;
|
||||
} else if (type === "Date") {
|
||||
return data.toString();
|
||||
} else {
|
||||
if (enumsMap[type]) {
|
||||
return data;
|
||||
}
|
||||
if (!typeMap[type]) { // in case we dont know the type
|
||||
return data;
|
||||
}
|
||||
|
||||
// get the map for the correct type.
|
||||
let attributeTypes = typeMap[type].getAttributeTypeMap();
|
||||
let instance = {};
|
||||
for (let index in attributeTypes) {
|
||||
let attributeType = attributeTypes[index];
|
||||
instance[attributeType.baseName] = ObjectSerializer.serialize(data[attributeType.name], attributeType.type);
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
|
||||
public static deserialize(data: any, type: string) {
|
||||
// polymorphism may change the actual type.
|
||||
type = ObjectSerializer.findCorrectType(data, type);
|
||||
if (data == undefined) {
|
||||
return data;
|
||||
} else if (primitives.indexOf(type.toLowerCase()) !== -1) {
|
||||
return data;
|
||||
} else if (type.lastIndexOf("Array<", 0) === 0) { // string.startsWith pre es6
|
||||
let subType: string = type.replace("Array<", ""); // Array<Type> => Type>
|
||||
subType = subType.substring(0, subType.length - 1); // Type> => Type
|
||||
let transformedData = [];
|
||||
for (let index in data) {
|
||||
let date = data[index];
|
||||
transformedData.push(ObjectSerializer.deserialize(date, subType));
|
||||
}
|
||||
return transformedData;
|
||||
} else if (type === "Date") {
|
||||
return new Date(data);
|
||||
} else {
|
||||
if (enumsMap[type]) {// is Enum
|
||||
return data;
|
||||
}
|
||||
|
||||
if (!typeMap[type]) { // dont know the type
|
||||
return data;
|
||||
}
|
||||
let instance = new typeMap[type]();
|
||||
let attributeTypes = typeMap[type].getAttributeTypeMap();
|
||||
for (let index in attributeTypes) {
|
||||
let attributeType = attributeTypes[index];
|
||||
instance[attributeType.name] = ObjectSerializer.deserialize(data[attributeType.baseName], attributeType.type);
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Model for testing reserved words *_/ ' \" =end \\r\\n \\n \\r
|
||||
* Model for testing reserved words *_/ ' \" =end -- \\r\\n \\n \\r
|
||||
*/
|
||||
export class ModelReturn {
|
||||
/**
|
||||
* property description *_/ ' \" =end \\r\\n \\n \\r
|
||||
* property description *_/ ' \" =end -- \\r\\n \\n \\r
|
||||
*/
|
||||
'return': number;
|
||||
|
||||
static discriminator = undefined;
|
||||
|
||||
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
|
||||
{
|
||||
"name": "return",
|
||||
"baseName": "return",
|
||||
"type": "number"
|
||||
} ];
|
||||
|
||||
static getAttributeTypeMap() {
|
||||
return ModelReturn.attributeTypeMap;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
let enumsMap = {
|
||||
}
|
||||
|
||||
let typeMap = {
|
||||
"ModelReturn": ModelReturn,
|
||||
}
|
||||
|
||||
export interface Authentication {
|
||||
/**
|
||||
* Apply authentication settings to header and query params.
|
||||
@@ -71,7 +193,7 @@ export class ApiKeyAuth implements Authentication {
|
||||
applyToRequest(requestOptions: request.Options): void {
|
||||
if (this.location == "query") {
|
||||
(<any>requestOptions.qs)[this.paramName] = this.apiKey;
|
||||
} else if (this.location == "header") {
|
||||
} else if (this.location == "header" && requestOptions && requestOptions.headers) {
|
||||
requestOptions.headers[this.paramName] = this.apiKey;
|
||||
}
|
||||
}
|
||||
@@ -81,14 +203,16 @@ export class OAuth implements Authentication {
|
||||
public accessToken: string;
|
||||
|
||||
applyToRequest(requestOptions: request.Options): void {
|
||||
requestOptions.headers["Authorization"] = "Bearer " + this.accessToken;
|
||||
if (requestOptions && requestOptions.headers) {
|
||||
requestOptions.headers["Authorization"] = "Bearer " + this.accessToken;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export class VoidAuth implements Authentication {
|
||||
public username: string;
|
||||
public password: string;
|
||||
applyToRequest(requestOptions: request.Options): void {
|
||||
applyToRequest(_: request.Options): void {
|
||||
// Do nothing
|
||||
}
|
||||
}
|
||||
@@ -104,7 +228,7 @@ export class FakeApi {
|
||||
|
||||
protected authentications = {
|
||||
'default': <Authentication>new VoidAuth(),
|
||||
'api_key': new ApiKeyAuth('header', 'api_key */ ' " =end \r\n \n \r'),
|
||||
'api_key': new ApiKeyAuth('header', 'api_key */ ' " =end -- \r\n \n \r'),
|
||||
'petstore_auth': new OAuth(),
|
||||
}
|
||||
|
||||
@@ -141,21 +265,22 @@ export class FakeApi {
|
||||
return <T1&T2>objA;
|
||||
}
|
||||
/**
|
||||
* To test code injection *_/ ' \" =end \\r\\n \\n \\r
|
||||
* To test code injection *_/ ' \" =end -- \\r\\n \\n \\r
|
||||
*
|
||||
* @param test code inject * ' " =end rn n r To test code injection *_/ ' \" =end \\r\\n \\n \\r
|
||||
* @param test code inject * ' " =end rn n r To test code injection *_/ ' \" =end -- \\r\\n \\n \\r
|
||||
*/
|
||||
public testCodeInjectEndRnNR (test code inject * ' " =end rn n r?: string) : Promise<{ response: http.ClientResponse; body?: any; }> {
|
||||
public testCodeInjectEndRnNR (test code inject * ' " =end rn n r?: string) : Promise<{ response: http.ClientResponse; body?: any; }> {
|
||||
const localVarPath = this.basePath + '/fake';
|
||||
let queryParameters: any = {};
|
||||
let headerParams: any = this.extendObj({}, this.defaultHeaders);
|
||||
let formParams: any = {};
|
||||
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
if (test code inject * ' " =end rn n r !== undefined) {
|
||||
formParams['test code inject */ ' " =end \r\n \n \r'] = test code inject * ' " =end rn n r;
|
||||
if (test code inject * ' " =end rn n r !== undefined) {
|
||||
formParams['test code inject */ ' " =end -- \r\n \n \r'] = ObjectSerializer.serialize(test code inject * ' " =end rn n r, "string");
|
||||
}
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -21,10 +21,142 @@ let defaultBasePath = 'http://petstore.swagger.io/v2';
|
||||
// ===============================================
|
||||
|
||||
/* tslint:disable:no-unused-variable */
|
||||
let primitives = [
|
||||
"string",
|
||||
"boolean",
|
||||
"double",
|
||||
"integer",
|
||||
"long",
|
||||
"float",
|
||||
"number",
|
||||
"any"
|
||||
];
|
||||
|
||||
class ObjectSerializer {
|
||||
|
||||
public static findCorrectType(data: any, expectedType: string) {
|
||||
if (data == undefined) {
|
||||
return expectedType;
|
||||
} else if (primitives.indexOf(expectedType.toLowerCase()) !== -1) {
|
||||
return expectedType;
|
||||
} else if (expectedType === "Date") {
|
||||
return expectedType;
|
||||
} else {
|
||||
if (enumsMap[expectedType]) {
|
||||
return expectedType;
|
||||
}
|
||||
|
||||
if (!typeMap[expectedType]) {
|
||||
return expectedType; // w/e we don't know the type
|
||||
}
|
||||
|
||||
// Check the discriminator
|
||||
let discriminatorProperty = typeMap[expectedType].discriminator;
|
||||
if (discriminatorProperty == null) {
|
||||
return expectedType; // the type does not have a discriminator. use it.
|
||||
} else {
|
||||
if (data[discriminatorProperty]) {
|
||||
return data[discriminatorProperty]; // use the type given in the discriminator
|
||||
} else {
|
||||
return expectedType; // discriminator was not present (or an empty string)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static serialize(data: any, type: string) {
|
||||
if (data == undefined) {
|
||||
return data;
|
||||
} else if (primitives.indexOf(type.toLowerCase()) !== -1) {
|
||||
return data;
|
||||
} else if (type.lastIndexOf("Array<", 0) === 0) { // string.startsWith pre es6
|
||||
let subType: string = type.replace("Array<", ""); // Array<Type> => Type>
|
||||
subType = subType.substring(0, subType.length - 1); // Type> => Type
|
||||
let transformedData = [];
|
||||
for (let index in data) {
|
||||
let date = data[index];
|
||||
transformedData.push(ObjectSerializer.serialize(date, subType));
|
||||
}
|
||||
return transformedData;
|
||||
} else if (type === "Date") {
|
||||
return data.toString();
|
||||
} else {
|
||||
if (enumsMap[type]) {
|
||||
return data;
|
||||
}
|
||||
if (!typeMap[type]) { // in case we dont know the type
|
||||
return data;
|
||||
}
|
||||
|
||||
// get the map for the correct type.
|
||||
let attributeTypes = typeMap[type].getAttributeTypeMap();
|
||||
let instance = {};
|
||||
for (let index in attributeTypes) {
|
||||
let attributeType = attributeTypes[index];
|
||||
instance[attributeType.baseName] = ObjectSerializer.serialize(data[attributeType.name], attributeType.type);
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
|
||||
public static deserialize(data: any, type: string) {
|
||||
// polymorphism may change the actual type.
|
||||
type = ObjectSerializer.findCorrectType(data, type);
|
||||
if (data == undefined) {
|
||||
return data;
|
||||
} else if (primitives.indexOf(type.toLowerCase()) !== -1) {
|
||||
return data;
|
||||
} else if (type.lastIndexOf("Array<", 0) === 0) { // string.startsWith pre es6
|
||||
let subType: string = type.replace("Array<", ""); // Array<Type> => Type>
|
||||
subType = subType.substring(0, subType.length - 1); // Type> => Type
|
||||
let transformedData = [];
|
||||
for (let index in data) {
|
||||
let date = data[index];
|
||||
transformedData.push(ObjectSerializer.deserialize(date, subType));
|
||||
}
|
||||
return transformedData;
|
||||
} else if (type === "Date") {
|
||||
return new Date(data);
|
||||
} else {
|
||||
if (enumsMap[type]) {// is Enum
|
||||
return data;
|
||||
}
|
||||
|
||||
if (!typeMap[type]) { // dont know the type
|
||||
return data;
|
||||
}
|
||||
let instance = new typeMap[type]();
|
||||
let attributeTypes = typeMap[type].getAttributeTypeMap();
|
||||
for (let index in attributeTypes) {
|
||||
let attributeType = attributeTypes[index];
|
||||
instance[attributeType.name] = ObjectSerializer.deserialize(data[attributeType.baseName], attributeType.type);
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export class Category {
|
||||
'id': number;
|
||||
'name': string;
|
||||
|
||||
static discriminator = undefined;
|
||||
|
||||
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
|
||||
{
|
||||
"name": "id",
|
||||
"baseName": "id",
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"baseName": "name",
|
||||
"type": "string"
|
||||
} ];
|
||||
|
||||
static getAttributeTypeMap() {
|
||||
return Category.attributeTypeMap;
|
||||
}
|
||||
}
|
||||
|
||||
export class Order {
|
||||
@@ -37,6 +169,44 @@ export class Order {
|
||||
*/
|
||||
'status': Order.StatusEnum;
|
||||
'complete': boolean;
|
||||
|
||||
static discriminator = undefined;
|
||||
|
||||
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
|
||||
{
|
||||
"name": "id",
|
||||
"baseName": "id",
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"name": "petId",
|
||||
"baseName": "petId",
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"name": "quantity",
|
||||
"baseName": "quantity",
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"name": "shipDate",
|
||||
"baseName": "shipDate",
|
||||
"type": "Date"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"baseName": "status",
|
||||
"type": "Order.StatusEnum"
|
||||
},
|
||||
{
|
||||
"name": "complete",
|
||||
"baseName": "complete",
|
||||
"type": "boolean"
|
||||
} ];
|
||||
|
||||
static getAttributeTypeMap() {
|
||||
return Order.attributeTypeMap;
|
||||
}
|
||||
}
|
||||
|
||||
export namespace Order {
|
||||
@@ -56,6 +226,44 @@ export class Pet {
|
||||
* pet status in the store
|
||||
*/
|
||||
'status': Pet.StatusEnum;
|
||||
|
||||
static discriminator = undefined;
|
||||
|
||||
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
|
||||
{
|
||||
"name": "id",
|
||||
"baseName": "id",
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"name": "category",
|
||||
"baseName": "category",
|
||||
"type": "Category"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"baseName": "name",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "photoUrls",
|
||||
"baseName": "photoUrls",
|
||||
"type": "Array<string>"
|
||||
},
|
||||
{
|
||||
"name": "tags",
|
||||
"baseName": "tags",
|
||||
"type": "Array<Tag>"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"baseName": "status",
|
||||
"type": "Pet.StatusEnum"
|
||||
} ];
|
||||
|
||||
static getAttributeTypeMap() {
|
||||
return Pet.attributeTypeMap;
|
||||
}
|
||||
}
|
||||
|
||||
export namespace Pet {
|
||||
@@ -68,6 +276,24 @@ export namespace Pet {
|
||||
export class Tag {
|
||||
'id': number;
|
||||
'name': string;
|
||||
|
||||
static discriminator = undefined;
|
||||
|
||||
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
|
||||
{
|
||||
"name": "id",
|
||||
"baseName": "id",
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"baseName": "name",
|
||||
"type": "string"
|
||||
} ];
|
||||
|
||||
static getAttributeTypeMap() {
|
||||
return Tag.attributeTypeMap;
|
||||
}
|
||||
}
|
||||
|
||||
export class User {
|
||||
@@ -82,9 +308,70 @@ export class User {
|
||||
* User Status
|
||||
*/
|
||||
'userStatus': number;
|
||||
|
||||
static discriminator = undefined;
|
||||
|
||||
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
|
||||
{
|
||||
"name": "id",
|
||||
"baseName": "id",
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"name": "username",
|
||||
"baseName": "username",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "firstName",
|
||||
"baseName": "firstName",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "lastName",
|
||||
"baseName": "lastName",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "email",
|
||||
"baseName": "email",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "password",
|
||||
"baseName": "password",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "phone",
|
||||
"baseName": "phone",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "userStatus",
|
||||
"baseName": "userStatus",
|
||||
"type": "number"
|
||||
} ];
|
||||
|
||||
static getAttributeTypeMap() {
|
||||
return User.attributeTypeMap;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
let enumsMap = {
|
||||
"Order.StatusEnum": Order.StatusEnum,
|
||||
"Pet.StatusEnum": Pet.StatusEnum,
|
||||
}
|
||||
|
||||
let typeMap = {
|
||||
"Category": Category,
|
||||
"Order": Order,
|
||||
"Pet": Pet,
|
||||
"Tag": Tag,
|
||||
"User": User,
|
||||
}
|
||||
|
||||
export interface Authentication {
|
||||
/**
|
||||
* Apply authentication settings to header and query params.
|
||||
@@ -194,6 +481,7 @@ export class PetApi {
|
||||
let formParams: any = {};
|
||||
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -202,9 +490,8 @@ export class PetApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
body: body,
|
||||
body: ObjectSerializer.serialize(body, "Pet")
|
||||
};
|
||||
|
||||
this.authentications.petstore_auth.applyToRequest(requestOptions);
|
||||
@@ -251,7 +538,7 @@ export class PetApi {
|
||||
throw new Error('Required parameter petId was null or undefined when calling deletePet.');
|
||||
}
|
||||
|
||||
headerParams['api_key'] = apiKey;
|
||||
headerParams['api_key'] = ObjectSerializer.serialize(apiKey, "string");
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
@@ -261,7 +548,6 @@ export class PetApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -303,9 +589,10 @@ export class PetApi {
|
||||
|
||||
|
||||
if (status !== undefined) {
|
||||
queryParameters['status'] = status;
|
||||
queryParameters['status'] = ObjectSerializer.serialize(status, "Array<string>");
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -314,7 +601,6 @@ export class PetApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -334,6 +620,7 @@ export class PetApi {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
body = ObjectSerializer.deserialize(body, "Array<Pet>");
|
||||
if (response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
@@ -356,9 +643,10 @@ export class PetApi {
|
||||
|
||||
|
||||
if (tags !== undefined) {
|
||||
queryParameters['tags'] = tags;
|
||||
queryParameters['tags'] = ObjectSerializer.serialize(tags, "Array<string>");
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -367,7 +655,6 @@ export class PetApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -387,6 +674,7 @@ export class PetApi {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
body = ObjectSerializer.deserialize(body, "Array<Pet>");
|
||||
if (response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
@@ -414,6 +702,7 @@ export class PetApi {
|
||||
throw new Error('Required parameter petId was null or undefined when calling getPetById.');
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -422,7 +711,6 @@ export class PetApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -444,6 +732,7 @@ export class PetApi {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
body = ObjectSerializer.deserialize(body, "Pet");
|
||||
if (response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
@@ -465,6 +754,7 @@ export class PetApi {
|
||||
let formParams: any = {};
|
||||
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -473,9 +763,8 @@ export class PetApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
body: body,
|
||||
body: ObjectSerializer.serialize(body, "Pet")
|
||||
};
|
||||
|
||||
this.authentications.petstore_auth.applyToRequest(requestOptions);
|
||||
@@ -523,14 +812,15 @@ export class PetApi {
|
||||
throw new Error('Required parameter petId was null or undefined when calling updatePetWithForm.');
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
if (name !== undefined) {
|
||||
formParams['name'] = name;
|
||||
formParams['name'] = ObjectSerializer.serialize(name, "string");
|
||||
}
|
||||
|
||||
if (status !== undefined) {
|
||||
formParams['status'] = status;
|
||||
formParams['status'] = ObjectSerializer.serialize(status, "string");
|
||||
}
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -539,7 +829,6 @@ export class PetApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -575,7 +864,7 @@ export class PetApi {
|
||||
* @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; }> {
|
||||
public uploadFile (petId: number, additionalMetadata?: string, file?: Buffer) : Promise<{ response: http.ClientResponse; body?: any; }> {
|
||||
const localVarPath = this.basePath + '/pet/{petId}/uploadImage'
|
||||
.replace('{' + 'petId' + '}', String(petId));
|
||||
let queryParameters: any = {};
|
||||
@@ -588,10 +877,11 @@ export class PetApi {
|
||||
throw new Error('Required parameter petId was null or undefined when calling uploadFile.');
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
if (additionalMetadata !== undefined) {
|
||||
formParams['additionalMetadata'] = additionalMetadata;
|
||||
formParams['additionalMetadata'] = ObjectSerializer.serialize(additionalMetadata, "string");
|
||||
}
|
||||
|
||||
if (file !== undefined) {
|
||||
@@ -605,7 +895,6 @@ export class PetApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -700,6 +989,7 @@ export class StoreApi {
|
||||
throw new Error('Required parameter orderId was null or undefined when calling deleteOrder.');
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -708,7 +998,6 @@ export class StoreApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -746,6 +1035,7 @@ export class StoreApi {
|
||||
let formParams: any = {};
|
||||
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -754,7 +1044,6 @@ export class StoreApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -774,6 +1063,7 @@ export class StoreApi {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
body = ObjectSerializer.deserialize(body, "{ [key: string]: number; }");
|
||||
if (response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
@@ -801,6 +1091,7 @@ export class StoreApi {
|
||||
throw new Error('Required parameter orderId was null or undefined when calling getOrderById.');
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -809,7 +1100,6 @@ export class StoreApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -827,6 +1117,7 @@ export class StoreApi {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
body = ObjectSerializer.deserialize(body, "Order");
|
||||
if (response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
@@ -848,6 +1139,7 @@ export class StoreApi {
|
||||
let formParams: any = {};
|
||||
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -856,9 +1148,8 @@ export class StoreApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
body: body,
|
||||
body: ObjectSerializer.serialize(body, "Order")
|
||||
};
|
||||
|
||||
this.authentications.default.applyToRequest(requestOptions);
|
||||
@@ -875,6 +1166,7 @@ export class StoreApi {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
body = ObjectSerializer.deserialize(body, "Order");
|
||||
if (response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
@@ -944,6 +1236,7 @@ export class UserApi {
|
||||
let formParams: any = {};
|
||||
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -952,9 +1245,8 @@ export class UserApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
body: body,
|
||||
body: ObjectSerializer.serialize(body, "User")
|
||||
};
|
||||
|
||||
this.authentications.default.applyToRequest(requestOptions);
|
||||
@@ -992,6 +1284,7 @@ export class UserApi {
|
||||
let formParams: any = {};
|
||||
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -1000,9 +1293,8 @@ export class UserApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
body: body,
|
||||
body: ObjectSerializer.serialize(body, "Array<User>")
|
||||
};
|
||||
|
||||
this.authentications.default.applyToRequest(requestOptions);
|
||||
@@ -1040,6 +1332,7 @@ export class UserApi {
|
||||
let formParams: any = {};
|
||||
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -1048,9 +1341,8 @@ export class UserApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
body: body,
|
||||
body: ObjectSerializer.serialize(body, "Array<User>")
|
||||
};
|
||||
|
||||
this.authentications.default.applyToRequest(requestOptions);
|
||||
@@ -1094,6 +1386,7 @@ export class UserApi {
|
||||
throw new Error('Required parameter username was null or undefined when calling deleteUser.');
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -1102,7 +1395,6 @@ export class UserApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -1147,6 +1439,7 @@ export class UserApi {
|
||||
throw new Error('Required parameter username was null or undefined when calling getUserByName.');
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -1155,7 +1448,6 @@ export class UserApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -1173,6 +1465,7 @@ export class UserApi {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
body = ObjectSerializer.deserialize(body, "User");
|
||||
if (response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
@@ -1196,13 +1489,14 @@ export class UserApi {
|
||||
|
||||
|
||||
if (username !== undefined) {
|
||||
queryParameters['username'] = username;
|
||||
queryParameters['username'] = ObjectSerializer.serialize(username, "string");
|
||||
}
|
||||
|
||||
if (password !== undefined) {
|
||||
queryParameters['password'] = password;
|
||||
queryParameters['password'] = ObjectSerializer.serialize(password, "string");
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -1211,7 +1505,6 @@ export class UserApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -1229,6 +1522,7 @@ export class UserApi {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
body = ObjectSerializer.deserialize(body, "string");
|
||||
if (response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
@@ -1249,6 +1543,7 @@ export class UserApi {
|
||||
let formParams: any = {};
|
||||
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -1257,7 +1552,6 @@ export class UserApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -1303,6 +1597,7 @@ export class UserApi {
|
||||
throw new Error('Required parameter username was null or undefined when calling updateUser.');
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -1311,9 +1606,8 @@ export class UserApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
body: body,
|
||||
body: ObjectSerializer.serialize(body, "User")
|
||||
};
|
||||
|
||||
this.authentications.default.applyToRequest(requestOptions);
|
||||
|
||||
@@ -4,6 +4,17 @@ import Promise = require('bluebird');
|
||||
export declare class Category {
|
||||
'id': number;
|
||||
'name': string;
|
||||
static discriminator: any;
|
||||
static attributeTypeMap: Array<{
|
||||
name: string;
|
||||
baseName: string;
|
||||
type: string;
|
||||
}>;
|
||||
static getAttributeTypeMap(): {
|
||||
name: string;
|
||||
baseName: string;
|
||||
type: string;
|
||||
}[];
|
||||
}
|
||||
export declare class Order {
|
||||
'id': number;
|
||||
@@ -12,6 +23,17 @@ export declare class Order {
|
||||
'shipDate': Date;
|
||||
'status': Order.StatusEnum;
|
||||
'complete': boolean;
|
||||
static discriminator: any;
|
||||
static attributeTypeMap: Array<{
|
||||
name: string;
|
||||
baseName: string;
|
||||
type: string;
|
||||
}>;
|
||||
static getAttributeTypeMap(): {
|
||||
name: string;
|
||||
baseName: string;
|
||||
type: string;
|
||||
}[];
|
||||
}
|
||||
export declare namespace Order {
|
||||
enum StatusEnum {
|
||||
@@ -27,6 +49,17 @@ export declare class Pet {
|
||||
'photoUrls': Array<string>;
|
||||
'tags': Array<Tag>;
|
||||
'status': Pet.StatusEnum;
|
||||
static discriminator: any;
|
||||
static attributeTypeMap: Array<{
|
||||
name: string;
|
||||
baseName: string;
|
||||
type: string;
|
||||
}>;
|
||||
static getAttributeTypeMap(): {
|
||||
name: string;
|
||||
baseName: string;
|
||||
type: string;
|
||||
}[];
|
||||
}
|
||||
export declare namespace Pet {
|
||||
enum StatusEnum {
|
||||
@@ -38,6 +71,17 @@ export declare namespace Pet {
|
||||
export declare class Tag {
|
||||
'id': number;
|
||||
'name': string;
|
||||
static discriminator: any;
|
||||
static attributeTypeMap: Array<{
|
||||
name: string;
|
||||
baseName: string;
|
||||
type: string;
|
||||
}>;
|
||||
static getAttributeTypeMap(): {
|
||||
name: string;
|
||||
baseName: string;
|
||||
type: string;
|
||||
}[];
|
||||
}
|
||||
export declare class User {
|
||||
'id': number;
|
||||
@@ -48,6 +92,17 @@ export declare class User {
|
||||
'password': string;
|
||||
'phone': string;
|
||||
'userStatus': number;
|
||||
static discriminator: any;
|
||||
static attributeTypeMap: Array<{
|
||||
name: string;
|
||||
baseName: string;
|
||||
type: string;
|
||||
}>;
|
||||
static getAttributeTypeMap(): {
|
||||
name: string;
|
||||
baseName: string;
|
||||
type: string;
|
||||
}[];
|
||||
}
|
||||
export interface Authentication {
|
||||
applyToRequest(requestOptions: request.Options): void;
|
||||
@@ -71,7 +126,7 @@ export declare class OAuth implements Authentication {
|
||||
export declare class VoidAuth implements Authentication {
|
||||
username: string;
|
||||
password: string;
|
||||
applyToRequest(requestOptions: request.Options): void;
|
||||
applyToRequest(_: request.Options): void;
|
||||
}
|
||||
export declare enum PetApiApiKeys {
|
||||
api_key = 0,
|
||||
|
||||
1398
samples/client/petstore/typescript-node/npm/api.js
Normal file
1398
samples/client/petstore/typescript-node/npm/api.js
Normal file
File diff suppressed because it is too large
Load Diff
1
samples/client/petstore/typescript-node/npm/api.js.map
Normal file
1
samples/client/petstore/typescript-node/npm/api.js.map
Normal file
File diff suppressed because one or more lines are too long
@@ -21,10 +21,142 @@ let defaultBasePath = 'http://petstore.swagger.io/v2';
|
||||
// ===============================================
|
||||
|
||||
/* tslint:disable:no-unused-variable */
|
||||
let primitives = [
|
||||
"string",
|
||||
"boolean",
|
||||
"double",
|
||||
"integer",
|
||||
"long",
|
||||
"float",
|
||||
"number",
|
||||
"any"
|
||||
];
|
||||
|
||||
class ObjectSerializer {
|
||||
|
||||
public static findCorrectType(data: any, expectedType: string) {
|
||||
if (data == undefined) {
|
||||
return expectedType;
|
||||
} else if (primitives.indexOf(expectedType.toLowerCase()) !== -1) {
|
||||
return expectedType;
|
||||
} else if (expectedType === "Date") {
|
||||
return expectedType;
|
||||
} else {
|
||||
if (enumsMap[expectedType]) {
|
||||
return expectedType;
|
||||
}
|
||||
|
||||
if (!typeMap[expectedType]) {
|
||||
return expectedType; // w/e we don't know the type
|
||||
}
|
||||
|
||||
// Check the discriminator
|
||||
let discriminatorProperty = typeMap[expectedType].discriminator;
|
||||
if (discriminatorProperty == null) {
|
||||
return expectedType; // the type does not have a discriminator. use it.
|
||||
} else {
|
||||
if (data[discriminatorProperty]) {
|
||||
return data[discriminatorProperty]; // use the type given in the discriminator
|
||||
} else {
|
||||
return expectedType; // discriminator was not present (or an empty string)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static serialize(data: any, type: string) {
|
||||
if (data == undefined) {
|
||||
return data;
|
||||
} else if (primitives.indexOf(type.toLowerCase()) !== -1) {
|
||||
return data;
|
||||
} else if (type.lastIndexOf("Array<", 0) === 0) { // string.startsWith pre es6
|
||||
let subType: string = type.replace("Array<", ""); // Array<Type> => Type>
|
||||
subType = subType.substring(0, subType.length - 1); // Type> => Type
|
||||
let transformedData = [];
|
||||
for (let index in data) {
|
||||
let date = data[index];
|
||||
transformedData.push(ObjectSerializer.serialize(date, subType));
|
||||
}
|
||||
return transformedData;
|
||||
} else if (type === "Date") {
|
||||
return data.toString();
|
||||
} else {
|
||||
if (enumsMap[type]) {
|
||||
return data;
|
||||
}
|
||||
if (!typeMap[type]) { // in case we dont know the type
|
||||
return data;
|
||||
}
|
||||
|
||||
// get the map for the correct type.
|
||||
let attributeTypes = typeMap[type].getAttributeTypeMap();
|
||||
let instance = {};
|
||||
for (let index in attributeTypes) {
|
||||
let attributeType = attributeTypes[index];
|
||||
instance[attributeType.baseName] = ObjectSerializer.serialize(data[attributeType.name], attributeType.type);
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
|
||||
public static deserialize(data: any, type: string) {
|
||||
// polymorphism may change the actual type.
|
||||
type = ObjectSerializer.findCorrectType(data, type);
|
||||
if (data == undefined) {
|
||||
return data;
|
||||
} else if (primitives.indexOf(type.toLowerCase()) !== -1) {
|
||||
return data;
|
||||
} else if (type.lastIndexOf("Array<", 0) === 0) { // string.startsWith pre es6
|
||||
let subType: string = type.replace("Array<", ""); // Array<Type> => Type>
|
||||
subType = subType.substring(0, subType.length - 1); // Type> => Type
|
||||
let transformedData = [];
|
||||
for (let index in data) {
|
||||
let date = data[index];
|
||||
transformedData.push(ObjectSerializer.deserialize(date, subType));
|
||||
}
|
||||
return transformedData;
|
||||
} else if (type === "Date") {
|
||||
return new Date(data);
|
||||
} else {
|
||||
if (enumsMap[type]) {// is Enum
|
||||
return data;
|
||||
}
|
||||
|
||||
if (!typeMap[type]) { // dont know the type
|
||||
return data;
|
||||
}
|
||||
let instance = new typeMap[type]();
|
||||
let attributeTypes = typeMap[type].getAttributeTypeMap();
|
||||
for (let index in attributeTypes) {
|
||||
let attributeType = attributeTypes[index];
|
||||
instance[attributeType.name] = ObjectSerializer.deserialize(data[attributeType.baseName], attributeType.type);
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export class Category {
|
||||
'id': number;
|
||||
'name': string;
|
||||
|
||||
static discriminator = undefined;
|
||||
|
||||
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
|
||||
{
|
||||
"name": "id",
|
||||
"baseName": "id",
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"baseName": "name",
|
||||
"type": "string"
|
||||
} ];
|
||||
|
||||
static getAttributeTypeMap() {
|
||||
return Category.attributeTypeMap;
|
||||
}
|
||||
}
|
||||
|
||||
export class Order {
|
||||
@@ -37,6 +169,44 @@ export class Order {
|
||||
*/
|
||||
'status': Order.StatusEnum;
|
||||
'complete': boolean;
|
||||
|
||||
static discriminator = undefined;
|
||||
|
||||
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
|
||||
{
|
||||
"name": "id",
|
||||
"baseName": "id",
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"name": "petId",
|
||||
"baseName": "petId",
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"name": "quantity",
|
||||
"baseName": "quantity",
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"name": "shipDate",
|
||||
"baseName": "shipDate",
|
||||
"type": "Date"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"baseName": "status",
|
||||
"type": "Order.StatusEnum"
|
||||
},
|
||||
{
|
||||
"name": "complete",
|
||||
"baseName": "complete",
|
||||
"type": "boolean"
|
||||
} ];
|
||||
|
||||
static getAttributeTypeMap() {
|
||||
return Order.attributeTypeMap;
|
||||
}
|
||||
}
|
||||
|
||||
export namespace Order {
|
||||
@@ -56,6 +226,44 @@ export class Pet {
|
||||
* pet status in the store
|
||||
*/
|
||||
'status': Pet.StatusEnum;
|
||||
|
||||
static discriminator = undefined;
|
||||
|
||||
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
|
||||
{
|
||||
"name": "id",
|
||||
"baseName": "id",
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"name": "category",
|
||||
"baseName": "category",
|
||||
"type": "Category"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"baseName": "name",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "photoUrls",
|
||||
"baseName": "photoUrls",
|
||||
"type": "Array<string>"
|
||||
},
|
||||
{
|
||||
"name": "tags",
|
||||
"baseName": "tags",
|
||||
"type": "Array<Tag>"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"baseName": "status",
|
||||
"type": "Pet.StatusEnum"
|
||||
} ];
|
||||
|
||||
static getAttributeTypeMap() {
|
||||
return Pet.attributeTypeMap;
|
||||
}
|
||||
}
|
||||
|
||||
export namespace Pet {
|
||||
@@ -68,6 +276,24 @@ export namespace Pet {
|
||||
export class Tag {
|
||||
'id': number;
|
||||
'name': string;
|
||||
|
||||
static discriminator = undefined;
|
||||
|
||||
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
|
||||
{
|
||||
"name": "id",
|
||||
"baseName": "id",
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"baseName": "name",
|
||||
"type": "string"
|
||||
} ];
|
||||
|
||||
static getAttributeTypeMap() {
|
||||
return Tag.attributeTypeMap;
|
||||
}
|
||||
}
|
||||
|
||||
export class User {
|
||||
@@ -82,9 +308,70 @@ export class User {
|
||||
* User Status
|
||||
*/
|
||||
'userStatus': number;
|
||||
|
||||
static discriminator = undefined;
|
||||
|
||||
static attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
|
||||
{
|
||||
"name": "id",
|
||||
"baseName": "id",
|
||||
"type": "number"
|
||||
},
|
||||
{
|
||||
"name": "username",
|
||||
"baseName": "username",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "firstName",
|
||||
"baseName": "firstName",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "lastName",
|
||||
"baseName": "lastName",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "email",
|
||||
"baseName": "email",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "password",
|
||||
"baseName": "password",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "phone",
|
||||
"baseName": "phone",
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"name": "userStatus",
|
||||
"baseName": "userStatus",
|
||||
"type": "number"
|
||||
} ];
|
||||
|
||||
static getAttributeTypeMap() {
|
||||
return User.attributeTypeMap;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
let enumsMap = {
|
||||
"Order.StatusEnum": Order.StatusEnum,
|
||||
"Pet.StatusEnum": Pet.StatusEnum,
|
||||
}
|
||||
|
||||
let typeMap = {
|
||||
"Category": Category,
|
||||
"Order": Order,
|
||||
"Pet": Pet,
|
||||
"Tag": Tag,
|
||||
"User": User,
|
||||
}
|
||||
|
||||
export interface Authentication {
|
||||
/**
|
||||
* Apply authentication settings to header and query params.
|
||||
@@ -194,6 +481,7 @@ export class PetApi {
|
||||
let formParams: any = {};
|
||||
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -202,9 +490,8 @@ export class PetApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
body: body,
|
||||
body: ObjectSerializer.serialize(body, "Pet")
|
||||
};
|
||||
|
||||
this.authentications.petstore_auth.applyToRequest(requestOptions);
|
||||
@@ -251,7 +538,7 @@ export class PetApi {
|
||||
throw new Error('Required parameter petId was null or undefined when calling deletePet.');
|
||||
}
|
||||
|
||||
headerParams['api_key'] = apiKey;
|
||||
headerParams['api_key'] = ObjectSerializer.serialize(apiKey, "string");
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
@@ -261,7 +548,6 @@ export class PetApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -303,9 +589,10 @@ export class PetApi {
|
||||
|
||||
|
||||
if (status !== undefined) {
|
||||
queryParameters['status'] = status;
|
||||
queryParameters['status'] = ObjectSerializer.serialize(status, "Array<string>");
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -314,7 +601,6 @@ export class PetApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -334,6 +620,7 @@ export class PetApi {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
body = ObjectSerializer.deserialize(body, "Array<Pet>");
|
||||
if (response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
@@ -356,9 +643,10 @@ export class PetApi {
|
||||
|
||||
|
||||
if (tags !== undefined) {
|
||||
queryParameters['tags'] = tags;
|
||||
queryParameters['tags'] = ObjectSerializer.serialize(tags, "Array<string>");
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -367,7 +655,6 @@ export class PetApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -387,6 +674,7 @@ export class PetApi {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
body = ObjectSerializer.deserialize(body, "Array<Pet>");
|
||||
if (response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
@@ -414,6 +702,7 @@ export class PetApi {
|
||||
throw new Error('Required parameter petId was null or undefined when calling getPetById.');
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -422,7 +711,6 @@ export class PetApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -444,6 +732,7 @@ export class PetApi {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
body = ObjectSerializer.deserialize(body, "Pet");
|
||||
if (response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
@@ -465,6 +754,7 @@ export class PetApi {
|
||||
let formParams: any = {};
|
||||
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -473,9 +763,8 @@ export class PetApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
body: body,
|
||||
body: ObjectSerializer.serialize(body, "Pet")
|
||||
};
|
||||
|
||||
this.authentications.petstore_auth.applyToRequest(requestOptions);
|
||||
@@ -523,14 +812,15 @@ export class PetApi {
|
||||
throw new Error('Required parameter petId was null or undefined when calling updatePetWithForm.');
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
if (name !== undefined) {
|
||||
formParams['name'] = name;
|
||||
formParams['name'] = ObjectSerializer.serialize(name, "string");
|
||||
}
|
||||
|
||||
if (status !== undefined) {
|
||||
formParams['status'] = status;
|
||||
formParams['status'] = ObjectSerializer.serialize(status, "string");
|
||||
}
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -539,7 +829,6 @@ export class PetApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -575,7 +864,7 @@ export class PetApi {
|
||||
* @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; }> {
|
||||
public uploadFile (petId: number, additionalMetadata?: string, file?: Buffer) : Promise<{ response: http.ClientResponse; body?: any; }> {
|
||||
const localVarPath = this.basePath + '/pet/{petId}/uploadImage'
|
||||
.replace('{' + 'petId' + '}', String(petId));
|
||||
let queryParameters: any = {};
|
||||
@@ -588,10 +877,11 @@ export class PetApi {
|
||||
throw new Error('Required parameter petId was null or undefined when calling uploadFile.');
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
if (additionalMetadata !== undefined) {
|
||||
formParams['additionalMetadata'] = additionalMetadata;
|
||||
formParams['additionalMetadata'] = ObjectSerializer.serialize(additionalMetadata, "string");
|
||||
}
|
||||
|
||||
if (file !== undefined) {
|
||||
@@ -605,7 +895,6 @@ export class PetApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -700,6 +989,7 @@ export class StoreApi {
|
||||
throw new Error('Required parameter orderId was null or undefined when calling deleteOrder.');
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -708,7 +998,6 @@ export class StoreApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -746,6 +1035,7 @@ export class StoreApi {
|
||||
let formParams: any = {};
|
||||
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -754,7 +1044,6 @@ export class StoreApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -774,6 +1063,7 @@ export class StoreApi {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
body = ObjectSerializer.deserialize(body, "{ [key: string]: number; }");
|
||||
if (response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
@@ -801,6 +1091,7 @@ export class StoreApi {
|
||||
throw new Error('Required parameter orderId was null or undefined when calling getOrderById.');
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -809,7 +1100,6 @@ export class StoreApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -827,6 +1117,7 @@ export class StoreApi {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
body = ObjectSerializer.deserialize(body, "Order");
|
||||
if (response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
@@ -848,6 +1139,7 @@ export class StoreApi {
|
||||
let formParams: any = {};
|
||||
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -856,9 +1148,8 @@ export class StoreApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
body: body,
|
||||
body: ObjectSerializer.serialize(body, "Order")
|
||||
};
|
||||
|
||||
this.authentications.default.applyToRequest(requestOptions);
|
||||
@@ -875,6 +1166,7 @@ export class StoreApi {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
body = ObjectSerializer.deserialize(body, "Order");
|
||||
if (response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
@@ -944,6 +1236,7 @@ export class UserApi {
|
||||
let formParams: any = {};
|
||||
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -952,9 +1245,8 @@ export class UserApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
body: body,
|
||||
body: ObjectSerializer.serialize(body, "User")
|
||||
};
|
||||
|
||||
this.authentications.default.applyToRequest(requestOptions);
|
||||
@@ -992,6 +1284,7 @@ export class UserApi {
|
||||
let formParams: any = {};
|
||||
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -1000,9 +1293,8 @@ export class UserApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
body: body,
|
||||
body: ObjectSerializer.serialize(body, "Array<User>")
|
||||
};
|
||||
|
||||
this.authentications.default.applyToRequest(requestOptions);
|
||||
@@ -1040,6 +1332,7 @@ export class UserApi {
|
||||
let formParams: any = {};
|
||||
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -1048,9 +1341,8 @@ export class UserApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
body: body,
|
||||
body: ObjectSerializer.serialize(body, "Array<User>")
|
||||
};
|
||||
|
||||
this.authentications.default.applyToRequest(requestOptions);
|
||||
@@ -1094,6 +1386,7 @@ export class UserApi {
|
||||
throw new Error('Required parameter username was null or undefined when calling deleteUser.');
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -1102,7 +1395,6 @@ export class UserApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -1147,6 +1439,7 @@ export class UserApi {
|
||||
throw new Error('Required parameter username was null or undefined when calling getUserByName.');
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -1155,7 +1448,6 @@ export class UserApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -1173,6 +1465,7 @@ export class UserApi {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
body = ObjectSerializer.deserialize(body, "User");
|
||||
if (response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
@@ -1196,13 +1489,14 @@ export class UserApi {
|
||||
|
||||
|
||||
if (username !== undefined) {
|
||||
queryParameters['username'] = username;
|
||||
queryParameters['username'] = ObjectSerializer.serialize(username, "string");
|
||||
}
|
||||
|
||||
if (password !== undefined) {
|
||||
queryParameters['password'] = password;
|
||||
queryParameters['password'] = ObjectSerializer.serialize(password, "string");
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -1211,7 +1505,6 @@ export class UserApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -1229,6 +1522,7 @@ export class UserApi {
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
body = ObjectSerializer.deserialize(body, "string");
|
||||
if (response.statusCode >= 200 && response.statusCode <= 299) {
|
||||
resolve({ response: response, body: body });
|
||||
} else {
|
||||
@@ -1249,6 +1543,7 @@ export class UserApi {
|
||||
let formParams: any = {};
|
||||
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -1257,7 +1552,6 @@ export class UserApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
};
|
||||
|
||||
@@ -1303,6 +1597,7 @@ export class UserApi {
|
||||
throw new Error('Required parameter username was null or undefined when calling updateUser.');
|
||||
}
|
||||
|
||||
|
||||
let useFormData = false;
|
||||
|
||||
let requestOptions: request.Options = {
|
||||
@@ -1311,9 +1606,8 @@ export class UserApi {
|
||||
headers: headerParams,
|
||||
uri: localVarPath,
|
||||
useQuerystring: this._useQuerystring,
|
||||
|
||||
json: true,
|
||||
body: body,
|
||||
body: ObjectSerializer.serialize(body, "User")
|
||||
};
|
||||
|
||||
this.authentications.default.applyToRequest(requestOptions);
|
||||
|
||||
143
samples/client/petstore/typescript-node/npm/client.js
Normal file
143
samples/client/petstore/typescript-node/npm/client.js
Normal file
@@ -0,0 +1,143 @@
|
||||
"use strict";
|
||||
var api = require('./api');
|
||||
var fs = require('fs');
|
||||
function deepCheck(objectA, objectB) {
|
||||
var a = objectA;
|
||||
var b = objectB;
|
||||
var isString = (typeof a == "string" && typeof b == "string");
|
||||
var isBool = (typeof a == "boolean" && typeof b == "boolean");
|
||||
var isNumber = (typeof a == "number" && typeof b == "number");
|
||||
if (a instanceof Array && b instanceof Array) {
|
||||
for (var i = 0; i < a.length; i++) {
|
||||
if (!deepCheck(a[i], b[i])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else if (isString || isBool || isNumber) {
|
||||
return a === b;
|
||||
}
|
||||
else if (typeof a == "object" && typeof b == "object") {
|
||||
for (var key in a) {
|
||||
if (!deepCheck(a[key], b[key])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return a === b;
|
||||
}
|
||||
}
|
||||
var petApi = new api.PetApi();
|
||||
petApi.setApiKey(api.PetApiApiKeys.api_key, 'special-key');
|
||||
var tag1 = new api.Tag();
|
||||
tag1.id = 18291;
|
||||
tag1.name = 'TS tag 1';
|
||||
var pet = new api.Pet();
|
||||
pet.name = 'TypeScriptDoggie';
|
||||
pet.id = 18291;
|
||||
pet.photoUrls = ["http://url1", "http://url2"];
|
||||
pet.tags = [tag1];
|
||||
var petId;
|
||||
var exitCode = 0;
|
||||
var rewire = require("rewire");
|
||||
var rewiredApi = rewire("./api");
|
||||
var objectSerializer = rewiredApi.__get__("ObjectSerializer");
|
||||
console.log("Checking deserialization.");
|
||||
var serializedPet = {
|
||||
"id": pet.id,
|
||||
"category": {
|
||||
"id": 18291,
|
||||
"name": "TS category 1"
|
||||
},
|
||||
"name": pet.name,
|
||||
"photoUrls": pet.photoUrls,
|
||||
"tags": [
|
||||
{
|
||||
"id": 18291,
|
||||
"name": "TS tag 1"
|
||||
}
|
||||
],
|
||||
"status": "available"
|
||||
};
|
||||
var deserializedPet = objectSerializer.deserialize(serializedPet, "Pet");
|
||||
var petType = deserializedPet instanceof rewiredApi.Pet;
|
||||
var tagType1 = deserializedPet.tags[0] instanceof rewiredApi.Tag;
|
||||
var categoryType = deserializedPet.category instanceof rewiredApi.Category;
|
||||
var checks = {};
|
||||
for (var key in deserializedPet) {
|
||||
checks[key] = {};
|
||||
checks[key]["isCorrect"] = deepCheck(deserializedPet[key], serializedPet[key]);
|
||||
checks[key]["is"] = deserializedPet[key];
|
||||
checks[key]["should"] = serializedPet[key];
|
||||
}
|
||||
var correctTypes = petType && tagType1 && categoryType;
|
||||
if (!correctTypes) {
|
||||
exitCode = 1;
|
||||
console.log("PetType correct: ", petType);
|
||||
console.log("TagType1 correct: ", tagType1);
|
||||
console.log("CategoryType correct: ", categoryType);
|
||||
}
|
||||
for (var key in checks) {
|
||||
var check = checks[key];
|
||||
if (!check["isCorrect"]) {
|
||||
exitCode = 1;
|
||||
console.log(key, " incorrect ", "\nis:\n ", check["is"], "\nshould:\n ", check["should"]);
|
||||
}
|
||||
}
|
||||
console.log("Checking serialization");
|
||||
var category = new api.Category();
|
||||
category.id = 18291;
|
||||
category.name = "TS category 1";
|
||||
pet.category = category;
|
||||
pet.status = api.Pet.StatusEnum.Available;
|
||||
var reserializedData = objectSerializer.serialize(pet, "Pet");
|
||||
if (!deepCheck(reserializedData, serializedPet)) {
|
||||
exitCode = 1;
|
||||
console.log("Reserialized Data incorrect! \nis:\n ", reserializedData, "\nshould:\n ", serializedPet);
|
||||
}
|
||||
pet.category = undefined;
|
||||
pet.status = undefined;
|
||||
petApi.addPet(pet)
|
||||
.then(function (res) {
|
||||
var newPet = res.body;
|
||||
petId = newPet.id;
|
||||
console.log("Created pet with ID " + petId);
|
||||
newPet.status = api.Pet.StatusEnum.Available;
|
||||
return petApi.updatePet(newPet);
|
||||
})
|
||||
.then(function (res) {
|
||||
console.log('Updated pet using POST body');
|
||||
return petApi.updatePetWithForm(petId, undefined, "pending");
|
||||
})
|
||||
.then(function (res) {
|
||||
console.log('Updated pet using POST form');
|
||||
return petApi.uploadFile(petId, undefined, fs.createReadStream('sample.png'));
|
||||
})
|
||||
.then(function (res) {
|
||||
console.log('Uploaded image');
|
||||
return petApi.getPetById(petId);
|
||||
})
|
||||
.then(function (res) {
|
||||
console.log('Got pet by ID: ' + JSON.stringify(res.body));
|
||||
console.log("EnumValue: ", api.Pet.StatusEnum.Pending);
|
||||
console.log("Typeof EnumValue:", typeof api.Pet.StatusEnum.Pending);
|
||||
console.log("Res:", res.body.status);
|
||||
if (res.body.status != api.Pet.StatusEnum.Pending) {
|
||||
throw new Error("Unexpected pet status");
|
||||
}
|
||||
})
|
||||
.catch(function (err) {
|
||||
console.error(err);
|
||||
exitCode = 1;
|
||||
})
|
||||
.then(function () {
|
||||
return petApi.deletePet(petId);
|
||||
})
|
||||
.then(function (res) {
|
||||
console.log('Deleted pet');
|
||||
process.exit(exitCode);
|
||||
});
|
||||
//# sourceMappingURL=client.js.map
|
||||
File diff suppressed because one or more lines are too long
@@ -1,9 +1,38 @@
|
||||
import api = require('./api');
|
||||
import fs = require('fs');
|
||||
|
||||
// a should define the required properties
|
||||
function deepCheck(objectA: any, objectB: any): boolean {
|
||||
let a = objectA;
|
||||
let b = objectB;
|
||||
let isString: boolean = (typeof a === "string" && typeof b === "string");
|
||||
let isBool: boolean = (typeof a === "boolean" && typeof b === "boolean");
|
||||
let isNumber: boolean = (typeof a === "number" && typeof b === "number");
|
||||
|
||||
if (a instanceof Array && b instanceof Array) {
|
||||
for (let i = 0; i < a.length; i++) {
|
||||
if (!deepCheck(a[i], b[i])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} else if (isString || isBool || isNumber) {
|
||||
return a === b;
|
||||
} else if (typeof a === "object" && typeof b === "object") {
|
||||
for (let key in a) {
|
||||
if (!deepCheck(a[key], b[key])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
return a === b;
|
||||
}
|
||||
}
|
||||
|
||||
var petApi = new api.PetApi();
|
||||
petApi.setApiKey(api.PetApiApiKeys.api_key, 'special-key');
|
||||
//petApi.setApiKey(api.PetApiApiKeys.test_api_key_header, 'query-key');
|
||||
// petApi.setApiKey(api.PetApiApiKeys.test_api_key_header, 'query-key');
|
||||
|
||||
var tag1 = new api.Tag();
|
||||
tag1.id = 18291;
|
||||
@@ -19,6 +48,78 @@ var petId: any;
|
||||
|
||||
var exitCode = 0;
|
||||
|
||||
// Test Object Serializer
|
||||
var rewire = require("rewire");
|
||||
var rewiredApi = rewire("./api");
|
||||
var objectSerializer = rewiredApi.__get__("ObjectSerializer");
|
||||
console.log("Checking deserialization.");
|
||||
var serializedPet = {
|
||||
"id": pet.id,
|
||||
"category": {
|
||||
"id": 18291,
|
||||
"name": "TS category 1"
|
||||
},
|
||||
"name": pet.name,
|
||||
"photoUrls": pet.photoUrls,
|
||||
"tags": [
|
||||
{
|
||||
"id": 18291,
|
||||
"name": "TS tag 1"
|
||||
}
|
||||
],
|
||||
"status": "available"
|
||||
};
|
||||
var deserializedPet = objectSerializer.deserialize(serializedPet, "Pet");
|
||||
// Check types
|
||||
var petType: boolean = deserializedPet instanceof rewiredApi.Pet;
|
||||
var tagType1: boolean = deserializedPet.tags[0] instanceof rewiredApi.Tag;
|
||||
var categoryType: boolean = deserializedPet.category instanceof rewiredApi.Category;
|
||||
|
||||
let checks = {};
|
||||
for (let key in deserializedPet) {
|
||||
checks[key] = {};
|
||||
checks[key]["isCorrect"] = deepCheck(deserializedPet[key], serializedPet[key]);
|
||||
checks[key]["is"] = deserializedPet[key];
|
||||
checks[key]["should"] = serializedPet[key];
|
||||
}
|
||||
var correctTypes: boolean = petType && tagType1 && categoryType;
|
||||
|
||||
if (!correctTypes) {
|
||||
exitCode = 1;
|
||||
console.log("PetType correct: ", petType);
|
||||
console.log("TagType1 correct: ", tagType1);
|
||||
console.log("CategoryType correct: ", categoryType);
|
||||
}
|
||||
|
||||
for (let key in checks) {
|
||||
let check = checks[key];
|
||||
if (!check["isCorrect"]) {
|
||||
exitCode = 1;
|
||||
console.log(key, " incorrect ","\nis:\n ",
|
||||
check["is"], "\nshould:\n ", check["should"]);
|
||||
}
|
||||
}
|
||||
|
||||
console.log("Checking serialization");
|
||||
// set a category and status for the pet (will be removed after the serialization
|
||||
// check)
|
||||
var category = new api.Category();
|
||||
category.id = 18291;
|
||||
category.name = "TS category 1";
|
||||
pet.category = category;
|
||||
pet.status = api.Pet.StatusEnum.Available;
|
||||
|
||||
var reserializedData = objectSerializer.serialize(pet, "Pet");
|
||||
if (!deepCheck(reserializedData, serializedPet)) {
|
||||
exitCode = 1;
|
||||
console.log("Reserialized Data incorrect! \nis:\n ", reserializedData,
|
||||
"\nshould:\n ", serializedPet);
|
||||
}
|
||||
|
||||
// category and status are not used in the tests below.
|
||||
pet.category = undefined;
|
||||
pet.status = undefined;
|
||||
|
||||
// Test various API calls to the petstore
|
||||
petApi.addPet(pet)
|
||||
.then((res) => {
|
||||
@@ -34,7 +135,7 @@ petApi.addPet(pet)
|
||||
})
|
||||
.then((res) => {
|
||||
console.log('Updated pet using POST form');
|
||||
return petApi.uploadFile(petId, undefined, fs.createReadStream('sample.png'));
|
||||
return petApi.uploadFile(petId, undefined, fs.readFileSync('sample.png'));
|
||||
})
|
||||
.then((res) => {
|
||||
console.log('Uploaded image');
|
||||
@@ -42,6 +143,9 @@ petApi.addPet(pet)
|
||||
})
|
||||
.then((res) => {
|
||||
console.log('Got pet by ID: ' + JSON.stringify(res.body));
|
||||
console.log("EnumValue: ", api.Pet.StatusEnum.Pending);
|
||||
console.log("Typeof EnumValue:", typeof api.Pet.StatusEnum.Pending);
|
||||
console.log("Res:", res.body.status);
|
||||
if (res.body.status != api.Pet.StatusEnum.Pending) {
|
||||
throw new Error("Unexpected pet status");
|
||||
}
|
||||
|
||||
@@ -14,13 +14,14 @@
|
||||
"license": "Unlicense",
|
||||
"dependencies": {
|
||||
"bluebird": "^3.3.5",
|
||||
"request": "^2.72.0"
|
||||
"request": "^2.72.0",
|
||||
"rewire": "^2.5.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"typescript": "^1.8.10",
|
||||
"typings": "^0.8.1"
|
||||
},
|
||||
"publishConfig":{
|
||||
"registry":"https://skimdb.npmjs.com/registry"
|
||||
"publishConfig": {
|
||||
"registry": "https://skimdb.npmjs.com/registry"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user