Fixed date-time and date handling

This commit is contained in:
Tino Fuhrmann
2019-03-09 22:05:23 +01:00
parent e700a08a8f
commit 7f5615485d
21 changed files with 195 additions and 568 deletions

View File

@@ -30,8 +30,8 @@ public class CodegenOperation {
isResponseBinary = false, isResponseFile = false, hasReference = false,
isRestfulIndex, isRestfulShow, isRestfulCreate, isRestfulUpdate, isRestfulDestroy,
isRestful, isDeprecated, isCallbackRequest;
public String path, operationId, returnType, httpMethod, returnBaseType,
returnContainer, summary, unescapedNotes, notes, baseName, defaultResponse;
public String path, operationId, returnType, returnFormat, httpMethod, returnBaseType,
returnContainer, summary, unescapedNotes, notes, baseName, defaultResponse;
public CodegenDiscriminator discriminator;
public List<Map<String, String>> consumes, produces, prioritizedContentTypes;
public List<CodegenServer> servers = new ArrayList<CodegenServer>();

View File

@@ -2458,7 +2458,8 @@ public class DefaultCodegen implements CodegenConfig {
op.examples = new ExampleGenerator(schemas, this.openAPI).generateFromResponseSchema(exampleStatusCode, responseSchema, getProducesInfo(this.openAPI, operation));
op.defaultResponse = toDefaultValue(responseSchema);
op.returnType = cm.dataType;
op.hasReference = schemas.containsKey(op.returnBaseType);
op.returnFormat = cm.dataFormat;
op.hasReference = schemas != null && schemas.containsKey(op.returnBaseType);
// lookup discriminator
Schema schema = schemas.get(op.returnBaseType);

View File

@@ -40,13 +40,13 @@ export class {{classname}}RequestFactory extends BaseAPIRequestFactory {
// Query Params
{{#queryParams}}
if ({{paramName}} !== undefined) {
requestContext.setQueryParam("{{baseName}}", ObjectSerializer.serialize({{paramName}}, "{{{dataType}}}"));
requestContext.setQueryParam("{{baseName}}", ObjectSerializer.serialize({{paramName}}, "{{{dataType}}}", "{{dataFormat}}"));
}
{{/queryParams}}
// Header Params
{{#headerParams}}
requestContext.setHeaderParam("{{baseName}}", ObjectSerializer.serialize({{paramName}}, "{{{dataType}}}"));
requestContext.setHeaderParam("{{baseName}}", ObjectSerializer.serialize({{paramName}}, "{{{dataType}}}", "{{dataFormat}}"));
{{/headerParams}}
// Form Params
@@ -133,7 +133,7 @@ export class {{classname}}ResponseProcessor {
if (isCodeInRange("{{code}}", response.httpStatusCode)) {
{{#dataType}}
const jsonBody = JSON.parse(response.body);
const body: {{{dataType}}} = ObjectSerializer.deserialize(jsonBody, "{{{dataType}}}") as {{{dataType}}};
const body: {{{dataType}}} = ObjectSerializer.deserialize(jsonBody, "{{{dataType}}}", "{{returnFormat}}") as {{{dataType}}};
{{#isSuccessCode}}
return body;
{{/isSuccessCode}}
@@ -156,7 +156,7 @@ export class {{classname}}ResponseProcessor {
if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {
{{#returnType}}
const jsonBody = JSON.parse(response.body);
const body: {{{returnType}}} = ObjectSerializer.deserialize(jsonBody, "{{{returnType}}}") as {{{returnType}}};
const body: {{{returnType}}} = ObjectSerializer.deserialize(jsonBody, "{{{returnType}}}", "{{returnFormat}}") as {{{returnType}}};
return body;
{{/returnType}}
{{^returnType}}

View File

@@ -17,10 +17,12 @@ import { {{classname}}RequestFactory, {{classname}}ResponseProcessor} from "../a
export class Observable{{classname}} {
private requestFactory: {{classname}}RequestFactory;
private responseProcessor: {{classname}}ResponseProcessor;
public constructor(private configuration: Configuration) {
this.requestFactory = new {{classname}}RequestFactory(configuration);
this.responseProcessor = new {{classname}}ResponseProcessor();
private configuration: Configuration;
public constructor(configuration: Configuration, requestFactory?: {{classname}}RequestFactory, responseProcessor?: {{classname}}ResponseProcessor) {
this.configuration = configuration;
this.requestFactory = requestFactory || new {{classname}}RequestFactory(configuration);
this.responseProcessor = responseProcessor || new {{classname}}ResponseProcessor();
}
{{#operation}}

View File

@@ -16,9 +16,9 @@ import { Observable{{classname}} } from './ObservableAPI';
import { {{classname}}RequestFactory, {{classname}}ResponseProcessor} from "../apis/{{classname}}";
export class Promise{{classname}} {
private api: Observable{{classname}}
public constructor(configuration: Configuration) {
this.api = new Observable{{classname}}(configuration);
public constructor(configuration: Configuration, requestFactory?: {{classname}}RequestFactory, responseProcessor?: {{classname}}ResponseProcessor) {
this.api = new Observable{{classname}}(configuration, requestFactory, responseProcessor);
}
{{#operation}}

View File

@@ -80,7 +80,7 @@ export class ObjectSerializer {
}
}
public static serialize(data: any, type: string) {
public static serialize(data: any, type: string, format: string) {
if (data == undefined) {
return data;
} else if (primitives.indexOf(type.toLowerCase()) !== -1) {
@@ -91,11 +91,20 @@ export class ObjectSerializer {
let transformedData: any[] = [];
for (let index in data) {
let date = data[index];
transformedData.push(ObjectSerializer.serialize(date, subType));
transformedData.push(ObjectSerializer.serialize(date, subType, format));
}
return transformedData;
} else if (type === "Date") {
return data.toISOString();
if (format == "date") {
let month = data.getMonth()+1
month = month < 10 ? "0" + month.toString() : month.toString()
let day = data.getDate();
day = day < 10 ? "0" + day.toString() : day.toString();
return data.getFullYear() + "-" + month + "-" + day;
} else {
return data.toISOString();
}
} else {
if (enumsMap.has(type)) {
return data;
@@ -112,13 +121,13 @@ export class ObjectSerializer {
let instance: {[index: string]: any} = {};
for (let index in attributeTypes) {
let attributeType = attributeTypes[index];
instance[attributeType.baseName] = ObjectSerializer.serialize(data[attributeType.name], attributeType.type);
instance[attributeType.baseName] = ObjectSerializer.serialize(data[attributeType.name], attributeType.type, attributeType.format);
}
return instance;
}
}
public static deserialize(data: any, type: string) {
public static deserialize(data: any, type: string, format: string) {
// polymorphism may change the actual type.
type = ObjectSerializer.findCorrectType(data, type);
if (data == undefined) {
@@ -131,7 +140,7 @@ export class ObjectSerializer {
let transformedData: any[] = [];
for (let index in data) {
let date = data[index];
transformedData.push(ObjectSerializer.deserialize(date, subType));
transformedData.push(ObjectSerializer.deserialize(date, subType, format));
}
return transformedData;
} else if (type === "Date") {
@@ -148,7 +157,7 @@ export class ObjectSerializer {
let attributeTypes = typeMap[type].getAttributeTypeMap();
for (let index in attributeTypes) {
let attributeType = attributeTypes[index];
instance[attributeType.name] = ObjectSerializer.deserialize(data[attributeType.baseName], attributeType.type);
instance[attributeType.name] = ObjectSerializer.deserialize(data[attributeType.baseName], attributeType.type, attributeType.format);
}
return instance;
}

View File

@@ -28,12 +28,13 @@ export class {{classname}} {{#parent}}extends {{{parent}}} {{/parent}}{
{{/discriminator}}
{{^isArrayModel}}
static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [
{{#vars}}
{
"name": "{{name}}",
"baseName": "{{baseName}}",
"type": "{{#isEnum}}{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}"
"type": "{{#isEnum}}{{{datatypeWithEnum}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}",
"format": "{{dataFormat}}"
}{{#hasMore}},
{{/hasMore}}
{{/vars}}

View File

@@ -1,440 +0,0 @@
import { ResponseContext, RequestContext, HttpFile } from './http/http';
import * as models from './models/all';
import { Configuration} from './configuration'
import { Observable, of } from 'rxjs';
import {mergeMap, map} from 'rxjs/operators';
import { ApiResponse } from './models/ApiResponse';
import { Category } from './models/Category';
import { Order } from './models/Order';
import { Pet } from './models/Pet';
import { Tag } from './models/Tag';
import { User } from './models/User';
import { PetApiRequestFactory, PetApiResponseProcessor} from "./apis/PetApi";
export class PetApi {
private requestFactory: PetApiRequestFactory;
private responseProcessor: PetApiResponseProcessor;
public constructor(private configuration: Configuration) {
this.requestFactory = new PetApiRequestFactory(configuration);
this.responseProcessor = new PetApiResponseProcessor();
}
public addPet(pet: Pet, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.addPet(pet, options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.addPet(rsp)));
}));
}
public deletePet(petId: number, apiKey?: string, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.deletePet(petId, apiKey, options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.deletePet(rsp)));
}));
}
public findPetsByStatus(status: Array<'available' | 'pending' | 'sold'>, options?: Configuration): Observable<Array<Pet>> {
const requestContext = this.requestFactory.findPetsByStatus(status, options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.findPetsByStatus(rsp)));
}));
}
public findPetsByTags(tags: Array<string>, options?: Configuration): Observable<Array<Pet>> {
const requestContext = this.requestFactory.findPetsByTags(tags, options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.findPetsByTags(rsp)));
}));
}
public getPetById(petId: number, options?: Configuration): Observable<Pet> {
const requestContext = this.requestFactory.getPetById(petId, options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.getPetById(rsp)));
}));
}
public updatePet(pet: Pet, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.updatePet(pet, options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.updatePet(rsp)));
}));
}
public updatePetWithForm(petId: number, name?: string, status?: string, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.updatePetWithForm(petId, name, status, options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.updatePetWithForm(rsp)));
}));
}
public uploadFile(petId: number, additionalMetadata?: string, file?: HttpFile, options?: Configuration): Observable<ApiResponse> {
const requestContext = this.requestFactory.uploadFile(petId, additionalMetadata, file, options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.uploadFile(rsp)));
}));
}
}
import { StoreApiRequestFactory, StoreApiResponseProcessor} from "./apis/StoreApi";
export class StoreApi {
private requestFactory: StoreApiRequestFactory;
private responseProcessor: StoreApiResponseProcessor;
public constructor(private configuration: Configuration) {
this.requestFactory = new StoreApiRequestFactory(configuration);
this.responseProcessor = new StoreApiResponseProcessor();
}
public deleteOrder(orderId: string, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.deleteOrder(orderId, options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.deleteOrder(rsp)));
}));
}
public getInventory(options?: Configuration): Observable<{ [key: string]: number; }> {
const requestContext = this.requestFactory.getInventory(options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.getInventory(rsp)));
}));
}
public getOrderById(orderId: number, options?: Configuration): Observable<Order> {
const requestContext = this.requestFactory.getOrderById(orderId, options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.getOrderById(rsp)));
}));
}
public placeOrder(order: Order, options?: Configuration): Observable<Order> {
const requestContext = this.requestFactory.placeOrder(order, options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.placeOrder(rsp)));
}));
}
}
import { UserApiRequestFactory, UserApiResponseProcessor} from "./apis/UserApi";
export class UserApi {
private requestFactory: UserApiRequestFactory;
private responseProcessor: UserApiResponseProcessor;
public constructor(private configuration: Configuration) {
this.requestFactory = new UserApiRequestFactory(configuration);
this.responseProcessor = new UserApiResponseProcessor();
}
public createUser(user: User, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.createUser(user, options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.createUser(rsp)));
}));
}
public createUsersWithArrayInput(user: Array<User>, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.createUsersWithArrayInput(user, options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.createUsersWithArrayInput(rsp)));
}));
}
public createUsersWithListInput(user: Array<User>, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.createUsersWithListInput(user, options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.createUsersWithListInput(rsp)));
}));
}
public deleteUser(username: string, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.deleteUser(username, options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.deleteUser(rsp)));
}));
}
public getUserByName(username: string, options?: Configuration): Observable<User> {
const requestContext = this.requestFactory.getUserByName(username, options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.getUserByName(rsp)));
}));
}
public loginUser(username: string, password: string, options?: Configuration): Observable<string> {
const requestContext = this.requestFactory.loginUser(username, password, options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.loginUser(rsp)));
}));
}
public logoutUser(options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.logoutUser(options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.logoutUser(rsp)));
}));
}
public updateUser(username: string, user: User, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.updateUser(username, user, options);
// build promise chain
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
pipe(mergeMap((response: ResponseContext) => {
let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) {
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.updateUser(rsp)));
}));
}
}

View File

@@ -74,7 +74,7 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory {
// Query Params
// Header Params
requestContext.setHeaderParam("api_key", ObjectSerializer.serialize(apiKey, "string"));
requestContext.setHeaderParam("api_key", ObjectSerializer.serialize(apiKey, "string", ""));
// Form Params
@@ -109,7 +109,7 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory {
// Query Params
if (status !== undefined) {
requestContext.setQueryParam("status", ObjectSerializer.serialize(status, "Array<'available' | 'pending' | 'sold'>"));
requestContext.setQueryParam("status", ObjectSerializer.serialize(status, "Array<'available' | 'pending' | 'sold'>", ""));
}
// Header Params
@@ -147,7 +147,7 @@ export class PetApiRequestFactory extends BaseAPIRequestFactory {
// Query Params
if (tags !== undefined) {
requestContext.setQueryParam("tags", ObjectSerializer.serialize(tags, "Array<string>"));
requestContext.setQueryParam("tags", ObjectSerializer.serialize(tags, "Array<string>", ""));
}
// Header Params
@@ -388,7 +388,7 @@ export class PetApiResponseProcessor {
public findPetsByStatus(response: ResponseContext): Array<Pet> {
if (isCodeInRange("200", response.httpStatusCode)) {
const jsonBody = JSON.parse(response.body);
const body: Array<Pet> = ObjectSerializer.deserialize(jsonBody, "Array<Pet>") as Array<Pet>;
const body: Array<Pet> = ObjectSerializer.deserialize(jsonBody, "Array<Pet>", "") as Array<Pet>;
return body;
}
if (isCodeInRange("400", response.httpStatusCode)) {
@@ -398,7 +398,7 @@ export class PetApiResponseProcessor {
// Work around for incorrect api specification in petstore.yaml
if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {
const jsonBody = JSON.parse(response.body);
const body: Array<Pet> = ObjectSerializer.deserialize(jsonBody, "Array<Pet>") as Array<Pet>;
const body: Array<Pet> = ObjectSerializer.deserialize(jsonBody, "Array<Pet>", "") as Array<Pet>;
return body;
}
let body = response.body || "";
@@ -412,7 +412,7 @@ export class PetApiResponseProcessor {
public findPetsByTags(response: ResponseContext): Array<Pet> {
if (isCodeInRange("200", response.httpStatusCode)) {
const jsonBody = JSON.parse(response.body);
const body: Array<Pet> = ObjectSerializer.deserialize(jsonBody, "Array<Pet>") as Array<Pet>;
const body: Array<Pet> = ObjectSerializer.deserialize(jsonBody, "Array<Pet>", "") as Array<Pet>;
return body;
}
if (isCodeInRange("400", response.httpStatusCode)) {
@@ -422,7 +422,7 @@ export class PetApiResponseProcessor {
// Work around for incorrect api specification in petstore.yaml
if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {
const jsonBody = JSON.parse(response.body);
const body: Array<Pet> = ObjectSerializer.deserialize(jsonBody, "Array<Pet>") as Array<Pet>;
const body: Array<Pet> = ObjectSerializer.deserialize(jsonBody, "Array<Pet>", "") as Array<Pet>;
return body;
}
let body = response.body || "";
@@ -436,7 +436,7 @@ export class PetApiResponseProcessor {
public getPetById(response: ResponseContext): Pet {
if (isCodeInRange("200", response.httpStatusCode)) {
const jsonBody = JSON.parse(response.body);
const body: Pet = ObjectSerializer.deserialize(jsonBody, "Pet") as Pet;
const body: Pet = ObjectSerializer.deserialize(jsonBody, "Pet", "") as Pet;
return body;
}
if (isCodeInRange("400", response.httpStatusCode)) {
@@ -449,7 +449,7 @@ export class PetApiResponseProcessor {
// Work around for incorrect api specification in petstore.yaml
if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {
const jsonBody = JSON.parse(response.body);
const body: Pet = ObjectSerializer.deserialize(jsonBody, "Pet") as Pet;
const body: Pet = ObjectSerializer.deserialize(jsonBody, "Pet", "") as Pet;
return body;
}
let body = response.body || "";
@@ -503,14 +503,14 @@ export class PetApiResponseProcessor {
public uploadFile(response: ResponseContext): ApiResponse {
if (isCodeInRange("200", response.httpStatusCode)) {
const jsonBody = JSON.parse(response.body);
const body: ApiResponse = ObjectSerializer.deserialize(jsonBody, "ApiResponse") as ApiResponse;
const body: ApiResponse = ObjectSerializer.deserialize(jsonBody, "ApiResponse", "") as ApiResponse;
return body;
}
// Work around for incorrect api specification in petstore.yaml
if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {
const jsonBody = JSON.parse(response.body);
const body: ApiResponse = ObjectSerializer.deserialize(jsonBody, "ApiResponse") as ApiResponse;
const body: ApiResponse = ObjectSerializer.deserialize(jsonBody, "ApiResponse", "") as ApiResponse;
return body;
}
let body = response.body || "";

View File

@@ -173,14 +173,14 @@ export class StoreApiResponseProcessor {
public getInventory(response: ResponseContext): { [key: string]: number; } {
if (isCodeInRange("200", response.httpStatusCode)) {
const jsonBody = JSON.parse(response.body);
const body: { [key: string]: number; } = ObjectSerializer.deserialize(jsonBody, "{ [key: string]: number; }") as { [key: string]: number; };
const body: { [key: string]: number; } = ObjectSerializer.deserialize(jsonBody, "{ [key: string]: number; }", "int32") as { [key: string]: number; };
return body;
}
// Work around for incorrect api specification in petstore.yaml
if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {
const jsonBody = JSON.parse(response.body);
const body: { [key: string]: number; } = ObjectSerializer.deserialize(jsonBody, "{ [key: string]: number; }") as { [key: string]: number; };
const body: { [key: string]: number; } = ObjectSerializer.deserialize(jsonBody, "{ [key: string]: number; }", "int32") as { [key: string]: number; };
return body;
}
let body = response.body || "";
@@ -194,7 +194,7 @@ export class StoreApiResponseProcessor {
public getOrderById(response: ResponseContext): Order {
if (isCodeInRange("200", response.httpStatusCode)) {
const jsonBody = JSON.parse(response.body);
const body: Order = ObjectSerializer.deserialize(jsonBody, "Order") as Order;
const body: Order = ObjectSerializer.deserialize(jsonBody, "Order", "") as Order;
return body;
}
if (isCodeInRange("400", response.httpStatusCode)) {
@@ -207,7 +207,7 @@ export class StoreApiResponseProcessor {
// Work around for incorrect api specification in petstore.yaml
if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {
const jsonBody = JSON.parse(response.body);
const body: Order = ObjectSerializer.deserialize(jsonBody, "Order") as Order;
const body: Order = ObjectSerializer.deserialize(jsonBody, "Order", "") as Order;
return body;
}
let body = response.body || "";
@@ -221,7 +221,7 @@ export class StoreApiResponseProcessor {
public placeOrder(response: ResponseContext): Order {
if (isCodeInRange("200", response.httpStatusCode)) {
const jsonBody = JSON.parse(response.body);
const body: Order = ObjectSerializer.deserialize(jsonBody, "Order") as Order;
const body: Order = ObjectSerializer.deserialize(jsonBody, "Order", "") as Order;
return body;
}
if (isCodeInRange("400", response.httpStatusCode)) {
@@ -231,7 +231,7 @@ export class StoreApiResponseProcessor {
// Work around for incorrect api specification in petstore.yaml
if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {
const jsonBody = JSON.parse(response.body);
const body: Order = ObjectSerializer.deserialize(jsonBody, "Order") as Order;
const body: Order = ObjectSerializer.deserialize(jsonBody, "Order", "") as Order;
return body;
}
let body = response.body || "";

View File

@@ -203,10 +203,10 @@ export class UserApiRequestFactory extends BaseAPIRequestFactory {
// Query Params
if (username !== undefined) {
requestContext.setQueryParam("username", ObjectSerializer.serialize(username, "string"));
requestContext.setQueryParam("username", ObjectSerializer.serialize(username, "string", ""));
}
if (password !== undefined) {
requestContext.setQueryParam("password", ObjectSerializer.serialize(password, "string"));
requestContext.setQueryParam("password", ObjectSerializer.serialize(password, "string", ""));
}
// Header Params
@@ -373,7 +373,7 @@ export class UserApiResponseProcessor {
public getUserByName(response: ResponseContext): User {
if (isCodeInRange("200", response.httpStatusCode)) {
const jsonBody = JSON.parse(response.body);
const body: User = ObjectSerializer.deserialize(jsonBody, "User") as User;
const body: User = ObjectSerializer.deserialize(jsonBody, "User", "") as User;
return body;
}
if (isCodeInRange("400", response.httpStatusCode)) {
@@ -386,7 +386,7 @@ export class UserApiResponseProcessor {
// Work around for incorrect api specification in petstore.yaml
if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {
const jsonBody = JSON.parse(response.body);
const body: User = ObjectSerializer.deserialize(jsonBody, "User") as User;
const body: User = ObjectSerializer.deserialize(jsonBody, "User", "") as User;
return body;
}
let body = response.body || "";
@@ -400,7 +400,7 @@ export class UserApiResponseProcessor {
public loginUser(response: ResponseContext): string {
if (isCodeInRange("200", response.httpStatusCode)) {
const jsonBody = JSON.parse(response.body);
const body: string = ObjectSerializer.deserialize(jsonBody, "string") as string;
const body: string = ObjectSerializer.deserialize(jsonBody, "string", "") as string;
return body;
}
if (isCodeInRange("400", response.httpStatusCode)) {
@@ -410,7 +410,7 @@ export class UserApiResponseProcessor {
// Work around for incorrect api specification in petstore.yaml
if (response.httpStatusCode >= 200 && response.httpStatusCode <= 299) {
const jsonBody = JSON.parse(response.body);
const body: string = ObjectSerializer.deserialize(jsonBody, "string") as string;
const body: string = ObjectSerializer.deserialize(jsonBody, "string", "") as string;
return body;
}
let body = response.body || "";

View File

@@ -12,21 +12,24 @@ export class ApiResponse {
static readonly discriminator: string | undefined = undefined;
static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [
{
"name": "code",
"baseName": "code",
"type": "number"
"type": "number",
"format": "int32"
},
{
"name": "type",
"baseName": "type",
"type": "string"
"type": "string",
"format": ""
},
{
"name": "message",
"baseName": "message",
"type": "string"
"type": "string",
"format": ""
} ];
static getAttributeTypeMap() {

View File

@@ -11,16 +11,18 @@ export class Category {
static readonly discriminator: string | undefined = undefined;
static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [
{
"name": "id",
"baseName": "id",
"type": "number"
"type": "number",
"format": "int64"
},
{
"name": "name",
"baseName": "name",
"type": "string"
"type": "string",
"format": ""
} ];
static getAttributeTypeMap() {

View File

@@ -74,7 +74,7 @@ export class ObjectSerializer {
}
}
public static serialize(data: any, type: string) {
public static serialize(data: any, type: string, format: string) {
if (data == undefined) {
return data;
} else if (primitives.indexOf(type.toLowerCase()) !== -1) {
@@ -85,11 +85,20 @@ export class ObjectSerializer {
let transformedData: any[] = [];
for (let index in data) {
let date = data[index];
transformedData.push(ObjectSerializer.serialize(date, subType));
transformedData.push(ObjectSerializer.serialize(date, subType, format));
}
return transformedData;
} else if (type === "Date") {
return data.toISOString();
if (format == "date") {
let month = data.getMonth()+1
month = month < 10 ? "0" + month.toString() : month.toString()
let day = data.getDate();
day = day < 10 ? "0" + day.toString() : day.toString();
return data.getFullYear() + "-" + month + "-" + day;
} else {
return data.toISOString();
}
} else {
if (enumsMap.has(type)) {
return data;
@@ -106,13 +115,13 @@ export class ObjectSerializer {
let instance: {[index: string]: any} = {};
for (let index in attributeTypes) {
let attributeType = attributeTypes[index];
instance[attributeType.baseName] = ObjectSerializer.serialize(data[attributeType.name], attributeType.type);
instance[attributeType.baseName] = ObjectSerializer.serialize(data[attributeType.name], attributeType.type, attributeType.format);
}
return instance;
}
}
public static deserialize(data: any, type: string) {
public static deserialize(data: any, type: string, format: string) {
// polymorphism may change the actual type.
type = ObjectSerializer.findCorrectType(data, type);
if (data == undefined) {
@@ -125,7 +134,7 @@ export class ObjectSerializer {
let transformedData: any[] = [];
for (let index in data) {
let date = data[index];
transformedData.push(ObjectSerializer.deserialize(date, subType));
transformedData.push(ObjectSerializer.deserialize(date, subType, format));
}
return transformedData;
} else if (type === "Date") {
@@ -142,7 +151,7 @@ export class ObjectSerializer {
let attributeTypes = typeMap[type].getAttributeTypeMap();
for (let index in attributeTypes) {
let attributeType = attributeTypes[index];
instance[attributeType.name] = ObjectSerializer.deserialize(data[attributeType.baseName], attributeType.type);
instance[attributeType.name] = ObjectSerializer.deserialize(data[attributeType.baseName], attributeType.type, attributeType.format);
}
return instance;
}

View File

@@ -18,36 +18,42 @@ export class Order {
static readonly discriminator: string | undefined = undefined;
static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [
{
"name": "id",
"baseName": "id",
"type": "number"
"type": "number",
"format": "int64"
},
{
"name": "petId",
"baseName": "petId",
"type": "number"
"type": "number",
"format": "int64"
},
{
"name": "quantity",
"baseName": "quantity",
"type": "number"
"type": "number",
"format": "int32"
},
{
"name": "shipDate",
"baseName": "shipDate",
"type": "Date"
"type": "Date",
"format": "date-time"
},
{
"name": "status",
"baseName": "status",
"type": "OrderStatusEnum"
"type": "OrderStatusEnum",
"format": ""
},
{
"name": "complete",
"baseName": "complete",
"type": "boolean"
"type": "boolean",
"format": ""
} ];
static getAttributeTypeMap() {

View File

@@ -20,36 +20,42 @@ export class Pet {
static readonly discriminator: string | undefined = undefined;
static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [
{
"name": "id",
"baseName": "id",
"type": "number"
"type": "number",
"format": "int64"
},
{
"name": "category",
"baseName": "category",
"type": "Category"
"type": "Category",
"format": ""
},
{
"name": "name",
"baseName": "name",
"type": "string"
"type": "string",
"format": ""
},
{
"name": "photoUrls",
"baseName": "photoUrls",
"type": "Array<string>"
"type": "Array<string>",
"format": ""
},
{
"name": "tags",
"baseName": "tags",
"type": "Array<Tag>"
"type": "Array<Tag>",
"format": ""
},
{
"name": "status",
"baseName": "status",
"type": "PetStatusEnum"
"type": "PetStatusEnum",
"format": ""
} ];
static getAttributeTypeMap() {

View File

@@ -11,16 +11,18 @@ export class Tag {
static readonly discriminator: string | undefined = undefined;
static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [
{
"name": "id",
"baseName": "id",
"type": "number"
"type": "number",
"format": "int64"
},
{
"name": "name",
"baseName": "name",
"type": "string"
"type": "string",
"format": ""
} ];
static getAttributeTypeMap() {

View File

@@ -20,46 +20,54 @@ export class User {
static readonly discriminator: string | undefined = undefined;
static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string}> = [
static readonly attributeTypeMap: Array<{name: string, baseName: string, type: string, format: string}> = [
{
"name": "id",
"baseName": "id",
"type": "number"
"type": "number",
"format": "int64"
},
{
"name": "username",
"baseName": "username",
"type": "string"
"type": "string",
"format": ""
},
{
"name": "firstName",
"baseName": "firstName",
"type": "string"
"type": "string",
"format": ""
},
{
"name": "lastName",
"baseName": "lastName",
"type": "string"
"type": "string",
"format": ""
},
{
"name": "email",
"baseName": "email",
"type": "string"
"type": "string",
"format": ""
},
{
"name": "password",
"baseName": "password",
"type": "string"
"type": "string",
"format": ""
},
{
"name": "phone",
"baseName": "phone",
"type": "string"
"type": "string",
"format": ""
},
{
"name": "userStatus",
"baseName": "userStatus",
"type": "number"
"type": "number",
"format": "int32"
} ];
static getAttributeTypeMap() {

View File

@@ -15,10 +15,12 @@ import { PetApiRequestFactory, PetApiResponseProcessor} from "../apis/PetApi";
export class ObservablePetApi {
private requestFactory: PetApiRequestFactory;
private responseProcessor: PetApiResponseProcessor;
public constructor(private configuration: Configuration) {
this.requestFactory = new PetApiRequestFactory(configuration);
this.responseProcessor = new PetApiResponseProcessor();
private configuration: Configuration;
public constructor(configuration: Configuration, requestFactory?: PetApiRequestFactory, responseProcessor?: PetApiResponseProcessor) {
this.configuration = configuration;
this.requestFactory = requestFactory || new PetApiRequestFactory(configuration);
this.responseProcessor = responseProcessor || new PetApiResponseProcessor();
}
public addPet(pet: Pet, options?: Configuration): Observable<void> {
@@ -183,10 +185,12 @@ import { StoreApiRequestFactory, StoreApiResponseProcessor} from "../apis/StoreA
export class ObservableStoreApi {
private requestFactory: StoreApiRequestFactory;
private responseProcessor: StoreApiResponseProcessor;
public constructor(private configuration: Configuration) {
this.requestFactory = new StoreApiRequestFactory(configuration);
this.responseProcessor = new StoreApiResponseProcessor();
private configuration: Configuration;
public constructor(configuration: Configuration, requestFactory?: StoreApiRequestFactory, responseProcessor?: StoreApiResponseProcessor) {
this.configuration = configuration;
this.requestFactory = requestFactory || new StoreApiRequestFactory(configuration);
this.responseProcessor = responseProcessor || new StoreApiResponseProcessor();
}
public deleteOrder(orderId: string, options?: Configuration): Observable<void> {
@@ -275,10 +279,12 @@ import { UserApiRequestFactory, UserApiResponseProcessor} from "../apis/UserApi"
export class ObservableUserApi {
private requestFactory: UserApiRequestFactory;
private responseProcessor: UserApiResponseProcessor;
public constructor(private configuration: Configuration) {
this.requestFactory = new UserApiRequestFactory(configuration);
this.responseProcessor = new UserApiResponseProcessor();
private configuration: Configuration;
public constructor(configuration: Configuration, requestFactory?: UserApiRequestFactory, responseProcessor?: UserApiResponseProcessor) {
this.configuration = configuration;
this.requestFactory = requestFactory || new UserApiRequestFactory(configuration);
this.responseProcessor = responseProcessor || new UserApiResponseProcessor();
}
public createUser(user: User, options?: Configuration): Observable<void> {

View File

@@ -14,9 +14,9 @@ import { ObservablePetApi } from './ObservableAPI';
import { PetApiRequestFactory, PetApiResponseProcessor} from "../apis/PetApi";
export class PromisePetApi {
private api: ObservablePetApi
public constructor(configuration: Configuration) {
this.api = new ObservablePetApi(configuration);
public constructor(configuration: Configuration, requestFactory?: PetApiRequestFactory, responseProcessor?: PetApiResponseProcessor) {
this.api = new ObservablePetApi(configuration, requestFactory, responseProcessor);
}
public addPet(pet: Pet, options?: Configuration): Promise<void> {
@@ -70,9 +70,9 @@ import { ObservableStoreApi } from './ObservableAPI';
import { StoreApiRequestFactory, StoreApiResponseProcessor} from "../apis/StoreApi";
export class PromiseStoreApi {
private api: ObservableStoreApi
public constructor(configuration: Configuration) {
this.api = new ObservableStoreApi(configuration);
public constructor(configuration: Configuration, requestFactory?: StoreApiRequestFactory, responseProcessor?: StoreApiResponseProcessor) {
this.api = new ObservableStoreApi(configuration, requestFactory, responseProcessor);
}
public deleteOrder(orderId: string, options?: Configuration): Promise<void> {
@@ -106,9 +106,9 @@ import { ObservableUserApi } from './ObservableAPI';
import { UserApiRequestFactory, UserApiResponseProcessor} from "../apis/UserApi";
export class PromiseUserApi {
private api: ObservableUserApi
public constructor(configuration: Configuration) {
this.api = new ObservableUserApi(configuration);
public constructor(configuration: Configuration, requestFactory?: UserApiRequestFactory, responseProcessor?: UserApiResponseProcessor) {
this.api = new ObservableUserApi(configuration, requestFactory, responseProcessor);
}
public createUser(user: User, options?: Configuration): Promise<void> {

View File

@@ -12,44 +12,50 @@ describe("ObjectSerializer", () => {
describe("Serialize", () => {
it("String", () => {
const input = "test string"
expect(ObjectSerializer.serialize(input, "string")).to.equal("test string")
expect(ObjectSerializer.serialize(input, "string", "")).to.equal("test string")
});
it("Number", () => {
const input = 1337
expect(ObjectSerializer.serialize(input, "number")).to.equal(1337)
expect(ObjectSerializer.serialize(input, "number", "")).to.equal(1337)
});
it("String Array", () => {
const input = ["a", "b", "c"]
expect(ObjectSerializer.serialize(input, "Array<string>")).to.deep.equal(["a", "b", "c"])
expect(ObjectSerializer.serialize(input, "Array<string>", "")).to.deep.equal(["a", "b", "c"])
})
it("Number Array", () => {
const input = [ 1337, 42, 0]
expect(ObjectSerializer.serialize(input, "Array<number>")).to.deep.equal([1337, 42, 0])
expect(ObjectSerializer.serialize(input, "Array<number>", "")).to.deep.equal([1337, 42, 0])
})
it("Date", () => {
it("Date-Time", () => {
const input = new Date(1543777609696)
expect(ObjectSerializer.serialize(input, "Date")).to.equal(input.toISOString())
expect(ObjectSerializer.serialize(input, "Date", "date-time")).to.equal(input.toISOString())
})
it("Date-Time", () => {
const input = new Date(1543777609696)
expect(ObjectSerializer.serialize(input, "Date", "date")).to.equal("2018-12-02")
})
it("Object", () => {
const input = {"a": "test", "b": { "test": 5}}
expect(ObjectSerializer.serialize(input, "Object")).to.deep.equal({ a: "test", "b": { "test": 5}})
expect(ObjectSerializer.serialize(input, "Object", "")).to.deep.equal({ a: "test", "b": { "test": 5}})
})
it("Class", () => {
const input = new petstore.models.Category()
input.id = 4
input.name = "Test"
expect(ObjectSerializer.serialize(input, "Category")).to.deep.equal({ "id": input.id, "name": input.name})
expect(ObjectSerializer.serialize(input, "Category", "")).to.deep.equal({ "id": input.id, "name": input.name})
});
it ("Enum", () => {
const input = "available"
expect(ObjectSerializer.serialize(input, "Pet.StatusEnum")).to.equal("available")
expect(ObjectSerializer.serialize(input, "Pet.StatusEnum", "")).to.equal("available")
})
it("Complex Class", () => {
@@ -77,7 +83,7 @@ describe("ObjectSerializer", () => {
pet.status = "available"
pet.tags = tags
expect(ObjectSerializer.serialize(pet, "Pet")).to.deep.equal({
expect(ObjectSerializer.serialize(pet, "Pet", "")).to.deep.equal({
"id": pet.id,
"name": pet.name,
"category": {
@@ -103,39 +109,45 @@ describe("ObjectSerializer", () => {
})
}
expect(ObjectSerializer.serialize(categories, "Array<Category>")).to.deep.equal(result)
expect(ObjectSerializer.serialize(categories, "Array<Category>", "")).to.deep.equal(result)
})
})
describe("Deserialize", () => {
it("String", () => {
const input = "test string"
expect(ObjectSerializer.deserialize(input, "string")).to.equal("test string")
expect(ObjectSerializer.deserialize(input, "string", "")).to.equal("test string")
});
it("Number", () => {
const input = 1337
expect(ObjectSerializer.deserialize(input, "number")).to.equal(1337)
expect(ObjectSerializer.deserialize(input, "number", "")).to.equal(1337)
});
it("String Array", () => {
const input = ["a", "b", "c"]
expect(ObjectSerializer.deserialize(input, "Array<string>")).to.deep.equal(["a", "b", "c"])
expect(ObjectSerializer.deserialize(input, "Array<string>", "")).to.deep.equal(["a", "b", "c"])
})
it("Number Array", () => {
const input = [ 1337, 42, 0]
expect(ObjectSerializer.deserialize(input, "Array<number>")).to.deep.equal([1337, 42, 0])
expect(ObjectSerializer.deserialize(input, "Array<number>", "")).to.deep.equal([1337, 42, 0])
})
it("DateTime", () => {
const input = new Date(1543777609696)
expect(ObjectSerializer.deserialize(input.toISOString(), "Date", "date-time").getTime()).to.equal(input.getTime())
})
it("Date", () => {
const input = new Date(1543777609696)
expect(ObjectSerializer.deserialize(input.toISOString(), "Date").getTime()).to.equal(input.getTime())
let dateString = "2019-02-01"
const input = new Date(dateString);
expect(ObjectSerializer.deserialize(dateString, "Date", "date").getTime()).to.equal(input.getTime())
})
it("Object", () => {
const input = {"a": "test", "b": { "test": 5}}
expect(ObjectSerializer.deserialize(input, "Object")).to.deep.equal({ a: "test", "b": { "test": 5}})
expect(ObjectSerializer.deserialize(input, "Object", "")).to.deep.equal({ a: "test", "b": { "test": 5}})
})
it("Class", () => {
@@ -150,7 +162,7 @@ describe("ObjectSerializer", () => {
it ("Enum", () => {
const input = "available"
expect(ObjectSerializer.deserialize("available", "Pet.StatusEnum")).to.equal(input)
expect(ObjectSerializer.deserialize("available", "Pet.StatusEnum", "")).to.equal(input)
})
it("Complex Class", () => {
@@ -188,7 +200,7 @@ describe("ObjectSerializer", () => {
"photoUrls": [ "url", "other url"],
"status": "available",
"tags": tagResult
}, "Pet") as petstore.models.Pet
}, "Pet", "") as petstore.models.Pet
expect(deserialized.constructor.name).to.equal("Pet")
expect(deserialized.category.constructor.name).to.equal("Category")
@@ -212,7 +224,7 @@ describe("ObjectSerializer", () => {
})
}
const deserialized = ObjectSerializer.deserialize(result, "Array<Category>")
const deserialized = ObjectSerializer.deserialize(result, "Array<Category>", "")
for (let i = 0; i < categories.length; i++) {
expect(deserialized[i].constructor.name).to.equal("Category")
}