Use observables internally

This commit is contained in:
Tino Fuhrmann 2019-03-09 14:11:39 +01:00
parent aeef285190
commit 1d27563a41
22 changed files with 1322 additions and 286 deletions

View File

@ -136,8 +136,11 @@ public class TypeScriptClientCodegen extends DefaultCodegen implements CodegenCo
supportingFiles.add(new SupportingFile("model/models_all.mustache", "models", "all.ts"));
// TODO: add supporting files depending on cli parameter e.g. fetch vs angular
supportingFiles.add(new SupportingFile("generators/PromiseAPI.mustache", "PromiseAPI.ts"));
supportingFiles.add(new SupportingFile("generators/fetch/index.mustache", "index.ts"));
supportingFiles.add(new SupportingFile("generators/types/PromiseAPI.mustache", "types", "PromiseAPI.ts"));
supportingFiles.add(new SupportingFile("generators/types/ObservableAPI.mustache", "types", "ObservableAPI.ts"));
supportingFiles.add(new SupportingFile("generators/fetch.mustache", "index.ts"));
// models
// TODO: properly set model and api packages

View File

@ -1,6 +1,7 @@
import {RequestContext, ResponseContext} from './http/http';
import { Observable } from 'rxjs';
export interface Middleware {
pre(context: RequestContext): Promise<RequestContext>;
post(context: ResponseContext): Promise<ResponseContext>;
pre(context: RequestContext): Observable<RequestContext>;
post(context: ResponseContext): Observable<ResponseContext>;
}

View File

@ -1,52 +0,0 @@
import { ResponseContext, HttpFile } from './http/http';
import * as models from './models/all';
import { Configuration} from './configuration'
{{#models}}
{{#model}}
import { {{name}} } from './models/{{name}}';
{{/model}}
{{/models}}
{{#apiInfo}}
{{#apis}}
{{#operations}}
import { {{classname}}RequestFactory, {{classname}}ResponseProcessor} from "./apis/{{classname}}";
export class {{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();
}
{{#operation}}
public {{nickname}}({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}options?: Configuration): Promise<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}> {
const requestContext = this.requestFactory.{{nickname}}({{#allParams}}{{paramName}}, {{/allParams}}options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
for (let middleware of this.configuration.middleware) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.{{nickname}}(rsp));
});
}
{{/operation}}
}
{{/operations}}
{{/apis}}
{{/apiInfo}}

View File

@ -3,7 +3,7 @@ import * as auth from './auth/auth';
import {Middleware} from './middleware';
import * as models from './models/all';
import { Configuration} from './configuration'
import * as apis from './PromiseAPI';
import * as apis from './types/PromiseAPI';
import * as exceptions from './apis/exception';
export {

View File

@ -0,0 +1,54 @@
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';
{{#models}}
{{#model}}
import { {{name}} } from '../models/{{name}}';
{{/model}}
{{/models}}
{{#apiInfo}}
{{#apis}}
{{#operations}}
import { {{classname}}RequestFactory, {{classname}}ResponseProcessor} from "../apis/{{classname}}";
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();
}
{{#operation}}
public {{nickname}}({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}options?: Configuration): Observable<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}> {
const requestContext = this.requestFactory.{{nickname}}({{#allParams}}{{paramName}}, {{/allParams}}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.{{nickname}}(rsp)));
}));
}
{{/operation}}
}
{{/operations}}
{{/apis}}
{{/apiInfo}}

View File

@ -0,0 +1,38 @@
import { ResponseContext, RequestContext, HttpFile } from '../http/http';
import * as models from '../models/all';
import { Configuration} from '../configuration'
{{#models}}
{{#model}}
import { {{name}} } from '../models/{{name}}';
{{/model}}
{{/models}}
{{#apiInfo}}
{{#apis}}
import { Observable{{classname}} } from './ObservableAPI';
{{#operations}}
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);
}
{{#operation}}
public {{nickname}}({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}options?: Configuration): Promise<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}> {
const result = this.api.{{nickname}}({{#allParams}}{{paramName}}, {{/allParams}}options);
return result.toPromise();
}
{{/operation}}
}
{{/operations}}
{{/apis}}
{{/apiInfo}}

View File

@ -3,6 +3,8 @@ import * as FormData from "form-data";
// typings of url-parse are incorrect...
// @ts-ignore
import * as URLParse from "url-parse";
import { Observable } from 'rxjs';
export * from './isomorphic-fetch';
@ -104,5 +106,5 @@ export class ResponseContext {
}
export interface HttpLibrary {
send(request: RequestContext): Promise<ResponseContext>;
send(request: RequestContext): Observable<ResponseContext>;
}

View File

@ -1,15 +1,16 @@
import {HttpLibrary, RequestContext, ResponseContext} from './http';
import * as e6p from 'es6-promise'
import { from, Observable } from 'rxjs';
e6p.polyfill();
import 'isomorphic-fetch';
export class IsomorphicFetchHttpLibrary implements HttpLibrary {
public send(request: RequestContext): Promise<ResponseContext> {
public send(request: RequestContext): Observable<ResponseContext> {
let method = request.getHttpMethod().toString();
let body = request.getBody();
return fetch(request.getUrl(), {
const resultPromise = fetch(request.getUrl(), {
method: method,
body: body as any,
headers: request.getHeaders(),
@ -25,6 +26,8 @@ export class IsomorphicFetchHttpLibrary implements HttpLibrary {
return new ResponseContext(resp.status, headers, body)
});
});
return from(resultPromise);
}
}

View File

@ -24,7 +24,9 @@
"@types/isomorphic-fetch": "0.0.34",
"form-data": "^2.3.2",
"@types/form-data": "^2.2.1",
"url-parse": "^1.4.3"
"url-parse": "^1.4.3",
"rxjs": "^6.4.0",
"@types/rx": "^4.1.1"
},
"devDependencies": {
"typescript": "^2.9.2"

View File

@ -1,6 +1,8 @@
import { ResponseContext, HttpFile } from './http/http';
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';
@ -19,156 +21,156 @@ export class PetApi {
this.responseProcessor = new PetApiResponseProcessor();
}
public addPet(pet: Pet, options?: Configuration): Promise<void> {
public addPet(pet: Pet, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.addPet(pet, options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.addPet(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.addPet(rsp)));
}));
}
public deletePet(petId: number, apiKey?: string, options?: Configuration): Promise<void> {
public deletePet(petId: number, apiKey?: string, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.deletePet(petId, apiKey, options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.deletePet(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.deletePet(rsp)));
}));
}
public findPetsByStatus(status: Array<'available' | 'pending' | 'sold'>, options?: Configuration): Promise<Array<Pet>> {
public findPetsByStatus(status: Array<'available' | 'pending' | 'sold'>, options?: Configuration): Observable<Array<Pet>> {
const requestContext = this.requestFactory.findPetsByStatus(status, options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.findPetsByStatus(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.findPetsByStatus(rsp)));
}));
}
public findPetsByTags(tags: Array<string>, options?: Configuration): Promise<Array<Pet>> {
public findPetsByTags(tags: Array<string>, options?: Configuration): Observable<Array<Pet>> {
const requestContext = this.requestFactory.findPetsByTags(tags, options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.findPetsByTags(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.findPetsByTags(rsp)));
}));
}
public getPetById(petId: number, options?: Configuration): Promise<Pet> {
public getPetById(petId: number, options?: Configuration): Observable<Pet> {
const requestContext = this.requestFactory.getPetById(petId, options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.getPetById(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.getPetById(rsp)));
}));
}
public updatePet(pet: Pet, options?: Configuration): Promise<void> {
public updatePet(pet: Pet, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.updatePet(pet, options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.updatePet(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.updatePet(rsp)));
}));
}
public updatePetWithForm(petId: number, name?: string, status?: string, options?: Configuration): Promise<void> {
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 middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.updatePetWithForm(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.updatePetWithForm(rsp)));
}));
}
public uploadFile(petId: number, additionalMetadata?: string, file?: HttpFile, options?: Configuration): Promise<ApiResponse> {
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 middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.uploadFile(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.uploadFile(rsp)));
}));
}
@ -187,80 +189,80 @@ export class StoreApi {
this.responseProcessor = new StoreApiResponseProcessor();
}
public deleteOrder(orderId: string, options?: Configuration): Promise<void> {
public deleteOrder(orderId: string, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.deleteOrder(orderId, options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.deleteOrder(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.deleteOrder(rsp)));
}));
}
public getInventory(options?: Configuration): Promise<{ [key: string]: number; }> {
public getInventory(options?: Configuration): Observable<{ [key: string]: number; }> {
const requestContext = this.requestFactory.getInventory(options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.getInventory(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.getInventory(rsp)));
}));
}
public getOrderById(orderId: number, options?: Configuration): Promise<Order> {
public getOrderById(orderId: number, options?: Configuration): Observable<Order> {
const requestContext = this.requestFactory.getOrderById(orderId, options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.getOrderById(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.getOrderById(rsp)));
}));
}
public placeOrder(order: Order, options?: Configuration): Promise<Order> {
public placeOrder(order: Order, options?: Configuration): Observable<Order> {
const requestContext = this.requestFactory.placeOrder(order, options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.placeOrder(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.placeOrder(rsp)));
}));
}
@ -279,156 +281,156 @@ export class UserApi {
this.responseProcessor = new UserApiResponseProcessor();
}
public createUser(user: User, options?: Configuration): Promise<void> {
public createUser(user: User, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.createUser(user, options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.createUser(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.createUser(rsp)));
}));
}
public createUsersWithArrayInput(user: Array<User>, options?: Configuration): Promise<void> {
public createUsersWithArrayInput(user: Array<User>, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.createUsersWithArrayInput(user, options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.createUsersWithArrayInput(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.createUsersWithArrayInput(rsp)));
}));
}
public createUsersWithListInput(user: Array<User>, options?: Configuration): Promise<void> {
public createUsersWithListInput(user: Array<User>, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.createUsersWithListInput(user, options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.createUsersWithListInput(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.createUsersWithListInput(rsp)));
}));
}
public deleteUser(username: string, options?: Configuration): Promise<void> {
public deleteUser(username: string, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.deleteUser(username, options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.deleteUser(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.deleteUser(rsp)));
}));
}
public getUserByName(username: string, options?: Configuration): Promise<User> {
public getUserByName(username: string, options?: Configuration): Observable<User> {
const requestContext = this.requestFactory.getUserByName(username, options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.getUserByName(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.getUserByName(rsp)));
}));
}
public loginUser(username: string, password: string, options?: Configuration): Promise<string> {
public loginUser(username: string, password: string, options?: Configuration): Observable<string> {
const requestContext = this.requestFactory.loginUser(username, password, options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.loginUser(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.loginUser(rsp)));
}));
}
public logoutUser(options?: Configuration): Promise<void> {
public logoutUser(options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.logoutUser(options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.logoutUser(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.logoutUser(rsp)));
}));
}
public updateUser(username: string, user: User, options?: Configuration): Promise<void> {
public updateUser(username: string, user: User, options?: Configuration): Observable<void> {
const requestContext = this.requestFactory.updateUser(username, user, options);
// build promise chain
let middlewarePrePromise = Promise.resolve(requestContext);
let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) {
middlewarePrePromise = middlewarePrePromise.then((ctx) => middleware.pre(ctx));
middlewarePreObservable = middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => middleware.pre(ctx)));
}
return middlewarePrePromise.then((ctx) => this.configuration.httpApi.send(ctx)).
then((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response);
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) {
middlewarePostPromise = middlewarePostPromise.then((rsp) => middleware.post(rsp));
middlewarePostObservable = middlewarePostObservable.pipe(mergeMap((rsp: ResponseContext) => middleware.post(rsp)));
}
return middlewarePostPromise.then((rsp) => this.responseProcessor.updateUser(rsp));
});
return middlewarePostObservable.pipe(map((rsp: ResponseContext) => this.responseProcessor.updateUser(rsp)));
}));
}

View File

@ -3,6 +3,8 @@ import * as FormData from "form-data";
// typings of url-parse are incorrect...
// @ts-ignore
import * as URLParse from "url-parse";
import { Observable } from 'rxjs';
export * from './isomorphic-fetch';
@ -104,5 +106,5 @@ export class ResponseContext {
}
export interface HttpLibrary {
send(request: RequestContext): Promise<ResponseContext>;
}
send(request: RequestContext): Observable<ResponseContext>;
}

View File

@ -1,15 +1,16 @@
import {HttpLibrary, RequestContext, ResponseContext} from './http';
import * as e6p from 'es6-promise'
import { from, Observable } from 'rxjs';
e6p.polyfill();
import 'isomorphic-fetch';
export class IsomorphicFetchHttpLibrary implements HttpLibrary {
public send(request: RequestContext): Promise<ResponseContext> {
public send(request: RequestContext): Observable<ResponseContext> {
let method = request.getHttpMethod().toString();
let body = request.getBody();
return fetch(request.getUrl(), {
const resultPromise = fetch(request.getUrl(), {
method: method,
body: body as any,
headers: request.getHeaders(),
@ -25,6 +26,8 @@ export class IsomorphicFetchHttpLibrary implements HttpLibrary {
return new ResponseContext(resp.status, headers, body)
});
});
return from(resultPromise);
}
}

View File

@ -3,10 +3,9 @@ import * as auth from './auth/auth';
import {Middleware} from './middleware';
import * as models from './models/all';
import { Configuration} from './configuration'
import * as apis from './PromiseAPI';
import * as apis from './types/PromiseAPI';
import * as exceptions from './apis/exception';
export {
http,

View File

@ -1,6 +1,7 @@
import {RequestContext, ResponseContext} from './http/http';
import { Observable } from 'rxjs';
export interface Middleware {
pre(context: RequestContext): Promise<RequestContext>;
post(context: ResponseContext): Promise<ResponseContext>;
pre(context: RequestContext): Observable<RequestContext>;
post(context: ResponseContext): Observable<ResponseContext>;
}

View File

@ -22,6 +22,119 @@
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.0.tgz",
"integrity": "sha512-3TUHC3jsBAB7qVRGxT6lWyYo2v96BMmD2PTcl47H25Lu7UXtFH/2qqmKiVrnel6Ne//0TFYf6uvNX+HW2FRkLQ=="
},
"@types/rx": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/@types/rx/-/rx-4.1.1.tgz",
"integrity": "sha1-WY/JSla67ZdfGUV04PVy/Y5iekg=",
"requires": {
"@types/rx-core": "*",
"@types/rx-core-binding": "*",
"@types/rx-lite": "*",
"@types/rx-lite-aggregates": "*",
"@types/rx-lite-async": "*",
"@types/rx-lite-backpressure": "*",
"@types/rx-lite-coincidence": "*",
"@types/rx-lite-experimental": "*",
"@types/rx-lite-joinpatterns": "*",
"@types/rx-lite-testing": "*",
"@types/rx-lite-time": "*",
"@types/rx-lite-virtualtime": "*"
}
},
"@types/rx-core": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@types/rx-core/-/rx-core-4.0.3.tgz",
"integrity": "sha1-CzNUsSOM7b4rdPYybxOdvHpZHWA="
},
"@types/rx-core-binding": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/@types/rx-core-binding/-/rx-core-binding-4.0.4.tgz",
"integrity": "sha512-5pkfxnC4w810LqBPUwP5bg7SFR/USwhMSaAeZQQbEHeBp57pjKXRlXmqpMrLJB4y1oglR/c2502853uN0I+DAQ==",
"requires": {
"@types/rx-core": "*"
}
},
"@types/rx-lite": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/@types/rx-lite/-/rx-lite-4.0.6.tgz",
"integrity": "sha512-oYiDrFIcor9zDm0VDUca1UbROiMYBxMLMaM6qzz4ADAfOmA9r1dYEcAFH+2fsPI5BCCjPvV9pWC3X3flbrvs7w==",
"requires": {
"@types/rx-core": "*",
"@types/rx-core-binding": "*"
}
},
"@types/rx-lite-aggregates": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@types/rx-lite-aggregates/-/rx-lite-aggregates-4.0.3.tgz",
"integrity": "sha512-MAGDAHy8cRatm94FDduhJF+iNS5//jrZ/PIfm+QYw9OCeDgbymFHChM8YVIvN2zArwsRftKgE33QfRWvQk4DPg==",
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-async": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@types/rx-lite-async/-/rx-lite-async-4.0.2.tgz",
"integrity": "sha512-vTEv5o8l6702ZwfAM5aOeVDfUwBSDOs+ARoGmWAKQ6LOInQ8J4/zjM7ov12fuTpktUKdMQjkeCp07Vd73mPkxw==",
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-backpressure": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@types/rx-lite-backpressure/-/rx-lite-backpressure-4.0.3.tgz",
"integrity": "sha512-Y6aIeQCtNban5XSAF4B8dffhIKu6aAy/TXFlScHzSxh6ivfQBQw6UjxyEJxIOt3IT49YkS+siuayM2H/Q0cmgA==",
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-coincidence": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@types/rx-lite-coincidence/-/rx-lite-coincidence-4.0.3.tgz",
"integrity": "sha512-1VNJqzE9gALUyMGypDXZZXzR0Tt7LC9DdAZQ3Ou/Q0MubNU35agVUNXKGHKpNTba+fr8GdIdkC26bRDqtCQBeQ==",
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-experimental": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@types/rx-lite-experimental/-/rx-lite-experimental-4.0.1.tgz",
"integrity": "sha1-xTL1y98/LBXaFt7Ykw0bKYQCPL0=",
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-joinpatterns": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@types/rx-lite-joinpatterns/-/rx-lite-joinpatterns-4.0.1.tgz",
"integrity": "sha1-9w/jcFGKhDLykVjMkv+1a05K/D4=",
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-testing": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@types/rx-lite-testing/-/rx-lite-testing-4.0.1.tgz",
"integrity": "sha1-IbGdEfTf1v/vWp0WSOnIh5v+Iek=",
"requires": {
"@types/rx-lite-virtualtime": "*"
}
},
"@types/rx-lite-time": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@types/rx-lite-time/-/rx-lite-time-4.0.3.tgz",
"integrity": "sha512-ukO5sPKDRwCGWRZRqPlaAU0SKVxmWwSjiOrLhoQDoWxZWg6vyB9XLEZViKOzIO6LnTIQBlk4UylYV0rnhJLxQw==",
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-virtualtime": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@types/rx-lite-virtualtime/-/rx-lite-virtualtime-4.0.3.tgz",
"integrity": "sha512-3uC6sGmjpOKatZSVHI2xB1+dedgml669ZRvqxy+WqmGJDVusOdyxcKfyzjW0P3/GrCiN4nmRkLVMhPwHCc5QLg==",
"requires": {
"@types/rx-lite": "*"
}
},
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
@ -122,11 +235,24 @@
"resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
},
"rxjs": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
"integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
"requires": {
"tslib": "^1.9.0"
}
},
"safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"tslib": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
},
"typescript": {
"version": "2.9.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",

View File

@ -24,7 +24,9 @@
"@types/isomorphic-fetch": "0.0.34",
"form-data": "^2.3.2",
"@types/form-data": "^2.2.1",
"url-parse": "^1.4.3"
"url-parse": "^1.4.3",
"rxjs": "^6.4.0",
"@types/rx": "^4.1.1"
},
"devDependencies": {
"typescript": "^2.9.2"

View File

@ -0,0 +1,440 @@
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 ObservablePetApi {
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 ObservableStoreApi {
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 ObservableUserApi {
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

@ -0,0 +1,158 @@
import { ResponseContext, RequestContext, HttpFile } from '../http/http';
import * as models from '../models/all';
import { Configuration} from '../configuration'
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 { 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 addPet(pet: Pet, options?: Configuration): Promise<void> {
const result = this.api.addPet(pet, options);
return result.toPromise();
}
public deletePet(petId: number, apiKey?: string, options?: Configuration): Promise<void> {
const result = this.api.deletePet(petId, apiKey, options);
return result.toPromise();
}
public findPetsByStatus(status: Array<'available' | 'pending' | 'sold'>, options?: Configuration): Promise<Array<Pet>> {
const result = this.api.findPetsByStatus(status, options);
return result.toPromise();
}
public findPetsByTags(tags: Array<string>, options?: Configuration): Promise<Array<Pet>> {
const result = this.api.findPetsByTags(tags, options);
return result.toPromise();
}
public getPetById(petId: number, options?: Configuration): Promise<Pet> {
const result = this.api.getPetById(petId, options);
return result.toPromise();
}
public updatePet(pet: Pet, options?: Configuration): Promise<void> {
const result = this.api.updatePet(pet, options);
return result.toPromise();
}
public updatePetWithForm(petId: number, name?: string, status?: string, options?: Configuration): Promise<void> {
const result = this.api.updatePetWithForm(petId, name, status, options);
return result.toPromise();
}
public uploadFile(petId: number, additionalMetadata?: string, file?: HttpFile, options?: Configuration): Promise<ApiResponse> {
const result = this.api.uploadFile(petId, additionalMetadata, file, options);
return result.toPromise();
}
}
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 deleteOrder(orderId: string, options?: Configuration): Promise<void> {
const result = this.api.deleteOrder(orderId, options);
return result.toPromise();
}
public getInventory(options?: Configuration): Promise<{ [key: string]: number; }> {
const result = this.api.getInventory(options);
return result.toPromise();
}
public getOrderById(orderId: number, options?: Configuration): Promise<Order> {
const result = this.api.getOrderById(orderId, options);
return result.toPromise();
}
public placeOrder(order: Order, options?: Configuration): Promise<Order> {
const result = this.api.placeOrder(order, options);
return result.toPromise();
}
}
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 createUser(user: User, options?: Configuration): Promise<void> {
const result = this.api.createUser(user, options);
return result.toPromise();
}
public createUsersWithArrayInput(user: Array<User>, options?: Configuration): Promise<void> {
const result = this.api.createUsersWithArrayInput(user, options);
return result.toPromise();
}
public createUsersWithListInput(user: Array<User>, options?: Configuration): Promise<void> {
const result = this.api.createUsersWithListInput(user, options);
return result.toPromise();
}
public deleteUser(username: string, options?: Configuration): Promise<void> {
const result = this.api.deleteUser(username, options);
return result.toPromise();
}
public getUserByName(username: string, options?: Configuration): Promise<User> {
const result = this.api.getUserByName(username, options);
return result.toPromise();
}
public loginUser(username: string, password: string, options?: Configuration): Promise<string> {
const result = this.api.loginUser(username, password, options);
return result.toPromise();
}
public logoutUser(options?: Configuration): Promise<void> {
const result = this.api.logoutUser(options);
return result.toPromise();
}
public updateUser(username: string, user: User, options?: Configuration): Promise<void> {
const result = this.api.updateUser(username, user, options);
return result.toPromise();
}
}

View File

@ -48,6 +48,119 @@
"resolved": "https://registry.npmjs.org/@types/rewire/-/rewire-2.5.28.tgz",
"integrity": "sha512-uD0j/AQOa5le7afuK+u+woi8jNKF1vf3DN0H7LCJhft/lNNibUr7VcAesdgtWfEKveZol3ZG1CJqwx2Bhrnl8w=="
},
"@types/rx": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/@types/rx/-/rx-4.1.1.tgz",
"integrity": "sha1-WY/JSla67ZdfGUV04PVy/Y5iekg=",
"requires": {
"@types/rx-core": "*",
"@types/rx-core-binding": "*",
"@types/rx-lite": "*",
"@types/rx-lite-aggregates": "*",
"@types/rx-lite-async": "*",
"@types/rx-lite-backpressure": "*",
"@types/rx-lite-coincidence": "*",
"@types/rx-lite-experimental": "*",
"@types/rx-lite-joinpatterns": "*",
"@types/rx-lite-testing": "*",
"@types/rx-lite-time": "*",
"@types/rx-lite-virtualtime": "*"
}
},
"@types/rx-core": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@types/rx-core/-/rx-core-4.0.3.tgz",
"integrity": "sha1-CzNUsSOM7b4rdPYybxOdvHpZHWA="
},
"@types/rx-core-binding": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/@types/rx-core-binding/-/rx-core-binding-4.0.4.tgz",
"integrity": "sha512-5pkfxnC4w810LqBPUwP5bg7SFR/USwhMSaAeZQQbEHeBp57pjKXRlXmqpMrLJB4y1oglR/c2502853uN0I+DAQ==",
"requires": {
"@types/rx-core": "*"
}
},
"@types/rx-lite": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/@types/rx-lite/-/rx-lite-4.0.6.tgz",
"integrity": "sha512-oYiDrFIcor9zDm0VDUca1UbROiMYBxMLMaM6qzz4ADAfOmA9r1dYEcAFH+2fsPI5BCCjPvV9pWC3X3flbrvs7w==",
"requires": {
"@types/rx-core": "*",
"@types/rx-core-binding": "*"
}
},
"@types/rx-lite-aggregates": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@types/rx-lite-aggregates/-/rx-lite-aggregates-4.0.3.tgz",
"integrity": "sha512-MAGDAHy8cRatm94FDduhJF+iNS5//jrZ/PIfm+QYw9OCeDgbymFHChM8YVIvN2zArwsRftKgE33QfRWvQk4DPg==",
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-async": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@types/rx-lite-async/-/rx-lite-async-4.0.2.tgz",
"integrity": "sha512-vTEv5o8l6702ZwfAM5aOeVDfUwBSDOs+ARoGmWAKQ6LOInQ8J4/zjM7ov12fuTpktUKdMQjkeCp07Vd73mPkxw==",
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-backpressure": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@types/rx-lite-backpressure/-/rx-lite-backpressure-4.0.3.tgz",
"integrity": "sha512-Y6aIeQCtNban5XSAF4B8dffhIKu6aAy/TXFlScHzSxh6ivfQBQw6UjxyEJxIOt3IT49YkS+siuayM2H/Q0cmgA==",
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-coincidence": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@types/rx-lite-coincidence/-/rx-lite-coincidence-4.0.3.tgz",
"integrity": "sha512-1VNJqzE9gALUyMGypDXZZXzR0Tt7LC9DdAZQ3Ou/Q0MubNU35agVUNXKGHKpNTba+fr8GdIdkC26bRDqtCQBeQ==",
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-experimental": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@types/rx-lite-experimental/-/rx-lite-experimental-4.0.1.tgz",
"integrity": "sha1-xTL1y98/LBXaFt7Ykw0bKYQCPL0=",
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-joinpatterns": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@types/rx-lite-joinpatterns/-/rx-lite-joinpatterns-4.0.1.tgz",
"integrity": "sha1-9w/jcFGKhDLykVjMkv+1a05K/D4=",
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-testing": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@types/rx-lite-testing/-/rx-lite-testing-4.0.1.tgz",
"integrity": "sha1-IbGdEfTf1v/vWp0WSOnIh5v+Iek=",
"requires": {
"@types/rx-lite-virtualtime": "*"
}
},
"@types/rx-lite-time": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@types/rx-lite-time/-/rx-lite-time-4.0.3.tgz",
"integrity": "sha512-ukO5sPKDRwCGWRZRqPlaAU0SKVxmWwSjiOrLhoQDoWxZWg6vyB9XLEZViKOzIO6LnTIQBlk4UylYV0rnhJLxQw==",
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-virtualtime": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@types/rx-lite-virtualtime/-/rx-lite-virtualtime-4.0.3.tgz",
"integrity": "sha512-3uC6sGmjpOKatZSVHI2xB1+dedgml669ZRvqxy+WqmGJDVusOdyxcKfyzjW0P3/GrCiN4nmRkLVMhPwHCc5QLg==",
"requires": {
"@types/rx-lite": "*"
}
},
"acorn": {
"version": "5.7.3",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
@ -1052,6 +1165,14 @@
"rx-lite": "*"
}
},
"rxjs": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
"integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
"requires": {
"tslib": "^1.9.0"
}
},
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@ -1232,10 +1353,12 @@
"requires": {
"@types/form-data": "^2.2.1",
"@types/isomorphic-fetch": "0.0.34",
"@types/rx": "^4.1.1",
"btoa": "^1.2.1",
"es6-promise": "^4.2.4",
"form-data": "^2.3.2",
"isomorphic-fetch": "^2.2.1",
"rxjs": "^6.4.0",
"url-parse": "^1.4.3"
},
"dependencies": {
@ -1254,6 +1377,106 @@
"version": "10.12.0",
"bundled": true
},
"@types/rx": {
"version": "4.1.1",
"bundled": true,
"requires": {
"@types/rx-core": "*",
"@types/rx-core-binding": "*",
"@types/rx-lite": "*",
"@types/rx-lite-aggregates": "*",
"@types/rx-lite-async": "*",
"@types/rx-lite-backpressure": "*",
"@types/rx-lite-coincidence": "*",
"@types/rx-lite-experimental": "*",
"@types/rx-lite-joinpatterns": "*",
"@types/rx-lite-testing": "*",
"@types/rx-lite-time": "*",
"@types/rx-lite-virtualtime": "*"
}
},
"@types/rx-core": {
"version": "4.0.3",
"bundled": true
},
"@types/rx-core-binding": {
"version": "4.0.4",
"bundled": true,
"requires": {
"@types/rx-core": "*"
}
},
"@types/rx-lite": {
"version": "4.0.6",
"bundled": true,
"requires": {
"@types/rx-core": "*",
"@types/rx-core-binding": "*"
}
},
"@types/rx-lite-aggregates": {
"version": "4.0.3",
"bundled": true,
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-async": {
"version": "4.0.2",
"bundled": true,
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-backpressure": {
"version": "4.0.3",
"bundled": true,
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-coincidence": {
"version": "4.0.3",
"bundled": true,
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-experimental": {
"version": "4.0.1",
"bundled": true,
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-joinpatterns": {
"version": "4.0.1",
"bundled": true,
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-testing": {
"version": "4.0.1",
"bundled": true,
"requires": {
"@types/rx-lite-virtualtime": "*"
}
},
"@types/rx-lite-time": {
"version": "4.0.3",
"bundled": true,
"requires": {
"@types/rx-lite": "*"
}
},
"@types/rx-lite-virtualtime": {
"version": "4.0.3",
"bundled": true,
"requires": {
"@types/rx-lite": "*"
}
},
"asynckit": {
"version": "0.4.0",
"bundled": true
@ -1313,14 +1536,14 @@
}
},
"mime-db": {
"version": "1.37.0",
"version": "1.36.0",
"bundled": true
},
"mime-types": {
"version": "2.1.21",
"version": "2.1.20",
"bundled": true,
"requires": {
"mime-db": "~1.37.0"
"mime-db": "~1.36.0"
}
},
"node-fetch": {
@ -1339,10 +1562,25 @@
"version": "1.0.0",
"bundled": true
},
"rxjs": {
"version": "6.4.0",
"bundled": true,
"requires": {
"tslib": "^1.9.0"
}
},
"safer-buffer": {
"version": "2.1.2",
"bundled": true
},
"tslib": {
"version": "1.9.3",
"bundled": true
},
"typescript": {
"version": "2.9.2",
"bundled": true
},
"url-parse": {
"version": "1.4.3",
"bundled": true,
@ -1366,6 +1604,11 @@
"strip-json-comments": "^2.0.0"
}
},
"tslib": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
},
"type-check": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",

View File

@ -3,8 +3,10 @@
"dependencies": {
"@types/form-data": "^2.2.1",
"@types/rewire": "^2.5.28",
"@types/rx": "^4.1.1",
"form-data": "^2.3.2",
"rewire": "^4.0.1",
"rxjs": "^6.4.0",
"ts-node": "^3.3.0",
"ts-petstore-client": "file:../../builds/default"
},

View File

@ -4,7 +4,7 @@ import { expect, assert } from "chai";
import * as fs from 'fs';
const configuration = new petstore.Configuration()
const petApi = new petstore.apis.PetApi(configuration)
const petApi = new petstore.apis.PromisePetApi(configuration)
const tag = new petstore.models.Tag();
tag.name = "tag1"
@ -22,7 +22,7 @@ describe("PetApi", () =>{
it("addPet", (done) => {
petApi.addPet(pet).then(() => {
return petApi.getPetById(pet.id)
}).then((createdPet) => {
}).then((createdPet: petstore.models.Pet) => {
expect(createdPet).to.deep.equal(pet);
done()
}).catch((err) => {

View File

@ -1,5 +1,6 @@
import * as petstore from "ts-petstore-client";
import {map} from 'rxjs/operators';
import { expect} from "chai";
import * as FormData from "form-data";
@ -17,16 +18,18 @@ for (let libName in libs) {
let requestContext = new petstore.http.RequestContext("http://httpbin.org/get", petstore.http.HttpMethod.GET);
requestContext.setHeaderParam("X-Test-Token", "Test-Token");
requestContext.addCookie("test-cookie", "cookie-value");
lib.send(requestContext).then((resp: petstore.http.ResponseContext) => {
expect(resp.httpStatusCode, "Expected status code to be 200").to.eq(200);
let body = JSON.parse(resp.body);
expect(body["headers"]).to.exist;
expect(body["headers"]["X-Test-Token"]).to.equal("Test-Token");
expect(body["headers"]["Cookie"]).to.equal("test-cookie=cookie-value;");
done();
}).catch((e) => {
done(e);
})
lib.send(requestContext).subscribe((resp: petstore.http.ResponseContext) => {
expect(resp.httpStatusCode, "Expected status code to be 200").to.eq(200);
let body = JSON.parse(resp.body);
expect(body["headers"]).to.exist;
expect(body["headers"]["X-Test-Token"]).to.equal("Test-Token");
expect(body["headers"]["Cookie"]).to.equal("test-cookie=cookie-value;");
done();
},
(e: any) => {
done(e);
}
)
})
it("POST-Request", (done) => {
@ -38,32 +41,36 @@ for (let libName in libs) {
formData.append("testFile", Buffer.from("abc"), "fileName.json");
requestContext.setBody(formData);
lib.send(requestContext).then((resp: petstore.http.ResponseContext) => {
expect(resp.httpStatusCode, "Expected status code to be 200").to.eq(200);
let body = JSON.parse(resp.body);
expect(body["headers"]).to.exist;
expect(body["headers"]["X-Test-Token"]).to.equal("Test-Token");
expect(body["headers"]["Cookie"]).to.equal("test-cookie=cookie-value;");
expect(body["files"]["testFile"]).to.equal("abc");
expect(body["form"]["test"]).to.equal("test2");
done();
}).catch((e) => {
done(e);
})
lib.send(requestContext).subscribe(
(resp: petstore.http.ResponseContext) => {
expect(resp.httpStatusCode, "Expected status code to be 200").to.eq(200);
let body = JSON.parse(resp.body);
expect(body["headers"]).to.exist;
expect(body["headers"]["X-Test-Token"]).to.equal("Test-Token");
expect(body["headers"]["Cookie"]).to.equal("test-cookie=cookie-value;");
expect(body["files"]["testFile"]).to.equal("abc");
expect(body["form"]["test"]).to.equal("test2");
done();
},
(e: any) => {
done(e);
})
});
it("Cookies-Request", (done) => {
let requestContext = new petstore.http.RequestContext("http://httpbin.org/cookies", petstore.http.HttpMethod.GET);
requestContext.addCookie("test-cookie", "cookie-value");
lib.send(requestContext).then((resp: petstore.http.ResponseContext) => {
expect(resp.httpStatusCode, "Expected status code to be 200").to.eq(200);
let body = JSON.parse(resp.body);
expect(body["cookies"]["test-cookie"]).to.equal("cookie-value");
done();
}).catch((e) => {
done(e);
})
lib.send(requestContext).subscribe(
(resp: petstore.http.ResponseContext) => {
expect(resp.httpStatusCode, "Expected status code to be 200").to.eq(200);
let body = JSON.parse(resp.body);
expect(body["cookies"]["test-cookie"]).to.equal("cookie-value");
done();
},
(e: any) => {
done(e);
})
})
})
}