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")); supportingFiles.add(new SupportingFile("model/models_all.mustache", "models", "all.ts"));
// TODO: add supporting files depending on cli parameter e.g. fetch vs angular // 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/types/PromiseAPI.mustache", "types", "PromiseAPI.ts"));
supportingFiles.add(new SupportingFile("generators/fetch/index.mustache", "index.ts")); supportingFiles.add(new SupportingFile("generators/types/ObservableAPI.mustache", "types", "ObservableAPI.ts"));
supportingFiles.add(new SupportingFile("generators/fetch.mustache", "index.ts"));
// models // models
// TODO: properly set model and api packages // TODO: properly set model and api packages

View File

@ -1,6 +1,7 @@
import {RequestContext, ResponseContext} from './http/http'; import {RequestContext, ResponseContext} from './http/http';
import { Observable } from 'rxjs';
export interface Middleware { export interface Middleware {
pre(context: RequestContext): Promise<RequestContext>; pre(context: RequestContext): Observable<RequestContext>;
post(context: ResponseContext): Promise<ResponseContext>; 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 {Middleware} from './middleware';
import * as models from './models/all'; import * as models from './models/all';
import { Configuration} from './configuration' import { Configuration} from './configuration'
import * as apis from './PromiseAPI'; import * as apis from './types/PromiseAPI';
import * as exceptions from './apis/exception'; import * as exceptions from './apis/exception';
export { 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... // typings of url-parse are incorrect...
// @ts-ignore // @ts-ignore
import * as URLParse from "url-parse"; import * as URLParse from "url-parse";
import { Observable } from 'rxjs';
export * from './isomorphic-fetch'; export * from './isomorphic-fetch';
@ -104,5 +106,5 @@ export class ResponseContext {
} }
export interface HttpLibrary { 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 {HttpLibrary, RequestContext, ResponseContext} from './http';
import * as e6p from 'es6-promise' import * as e6p from 'es6-promise'
import { from, Observable } from 'rxjs';
e6p.polyfill(); e6p.polyfill();
import 'isomorphic-fetch'; import 'isomorphic-fetch';
export class IsomorphicFetchHttpLibrary implements HttpLibrary { export class IsomorphicFetchHttpLibrary implements HttpLibrary {
public send(request: RequestContext): Promise<ResponseContext> { public send(request: RequestContext): Observable<ResponseContext> {
let method = request.getHttpMethod().toString(); let method = request.getHttpMethod().toString();
let body = request.getBody(); let body = request.getBody();
return fetch(request.getUrl(), { const resultPromise = fetch(request.getUrl(), {
method: method, method: method,
body: body as any, body: body as any,
headers: request.getHeaders(), headers: request.getHeaders(),
@ -25,6 +26,8 @@ export class IsomorphicFetchHttpLibrary implements HttpLibrary {
return new ResponseContext(resp.status, headers, body) return new ResponseContext(resp.status, headers, body)
}); });
}); });
return from(resultPromise);
} }
} }

View File

@ -24,7 +24,9 @@
"@types/isomorphic-fetch": "0.0.34", "@types/isomorphic-fetch": "0.0.34",
"form-data": "^2.3.2", "form-data": "^2.3.2",
"@types/form-data": "^2.2.1", "@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": { "devDependencies": {
"typescript": "^2.9.2" "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 * as models from './models/all';
import { Configuration} from './configuration' import { Configuration} from './configuration'
import { Observable, of } from 'rxjs';
import {mergeMap, map} from 'rxjs/operators';
import { ApiResponse } from './models/ApiResponse'; import { ApiResponse } from './models/ApiResponse';
import { Category } from './models/Category'; import { Category } from './models/Category';
@ -19,156 +21,156 @@ export class PetApi {
this.responseProcessor = new PetApiResponseProcessor(); 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); const requestContext = this.requestFactory.addPet(pet, options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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); const requestContext = this.requestFactory.deletePet(petId, apiKey, options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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); const requestContext = this.requestFactory.findPetsByStatus(status, options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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); const requestContext = this.requestFactory.findPetsByTags(tags, options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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); const requestContext = this.requestFactory.getPetById(petId, options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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); const requestContext = this.requestFactory.updatePet(pet, options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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); const requestContext = this.requestFactory.updatePetWithForm(petId, name, status, options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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); const requestContext = this.requestFactory.uploadFile(petId, additionalMetadata, file, options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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(); 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); const requestContext = this.requestFactory.deleteOrder(orderId, options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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); const requestContext = this.requestFactory.getInventory(options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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); const requestContext = this.requestFactory.getOrderById(orderId, options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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); const requestContext = this.requestFactory.placeOrder(order, options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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(); 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); const requestContext = this.requestFactory.createUser(user, options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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); const requestContext = this.requestFactory.createUsersWithArrayInput(user, options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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); const requestContext = this.requestFactory.createUsersWithListInput(user, options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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); const requestContext = this.requestFactory.deleteUser(username, options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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); const requestContext = this.requestFactory.getUserByName(username, options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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); const requestContext = this.requestFactory.loginUser(username, password, options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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); const requestContext = this.requestFactory.logoutUser(options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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); const requestContext = this.requestFactory.updateUser(username, user, options);
// build promise chain // build promise chain
let middlewarePrePromise = Promise.resolve(requestContext); let middlewarePreObservable = of(requestContext);
for (let middleware of this.configuration.middleware) { 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)). return middlewarePreObservable.pipe(mergeMap((ctx: RequestContext) => this.configuration.httpApi.send(ctx))).
then((response: ResponseContext) => { pipe(mergeMap((response: ResponseContext) => {
let middlewarePostPromise = Promise.resolve(response); let middlewarePostObservable = of(response);
for (let middleware of this.configuration.middleware) { 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... // typings of url-parse are incorrect...
// @ts-ignore // @ts-ignore
import * as URLParse from "url-parse"; import * as URLParse from "url-parse";
import { Observable } from 'rxjs';
export * from './isomorphic-fetch'; export * from './isomorphic-fetch';
@ -104,5 +106,5 @@ export class ResponseContext {
} }
export interface HttpLibrary { 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 {HttpLibrary, RequestContext, ResponseContext} from './http';
import * as e6p from 'es6-promise' import * as e6p from 'es6-promise'
import { from, Observable } from 'rxjs';
e6p.polyfill(); e6p.polyfill();
import 'isomorphic-fetch'; import 'isomorphic-fetch';
export class IsomorphicFetchHttpLibrary implements HttpLibrary { export class IsomorphicFetchHttpLibrary implements HttpLibrary {
public send(request: RequestContext): Promise<ResponseContext> { public send(request: RequestContext): Observable<ResponseContext> {
let method = request.getHttpMethod().toString(); let method = request.getHttpMethod().toString();
let body = request.getBody(); let body = request.getBody();
return fetch(request.getUrl(), { const resultPromise = fetch(request.getUrl(), {
method: method, method: method,
body: body as any, body: body as any,
headers: request.getHeaders(), headers: request.getHeaders(),
@ -25,6 +26,8 @@ export class IsomorphicFetchHttpLibrary implements HttpLibrary {
return new ResponseContext(resp.status, headers, body) 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 {Middleware} from './middleware';
import * as models from './models/all'; import * as models from './models/all';
import { Configuration} from './configuration' import { Configuration} from './configuration'
import * as apis from './PromiseAPI'; import * as apis from './types/PromiseAPI';
import * as exceptions from './apis/exception'; import * as exceptions from './apis/exception';
export { export {
http, http,

View File

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

View File

@ -22,6 +22,119 @@
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.0.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.0.tgz",
"integrity": "sha512-3TUHC3jsBAB7qVRGxT6lWyYo2v96BMmD2PTcl47H25Lu7UXtFH/2qqmKiVrnel6Ne//0TFYf6uvNX+HW2FRkLQ==" "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": { "asynckit": {
"version": "0.4.0", "version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "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", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" "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": { "safer-buffer": {
"version": "2.1.2", "version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" "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": { "typescript": {
"version": "2.9.2", "version": "2.9.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",

View File

@ -24,7 +24,9 @@
"@types/isomorphic-fetch": "0.0.34", "@types/isomorphic-fetch": "0.0.34",
"form-data": "^2.3.2", "form-data": "^2.3.2",
"@types/form-data": "^2.2.1", "@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": { "devDependencies": {
"typescript": "^2.9.2" "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", "resolved": "https://registry.npmjs.org/@types/rewire/-/rewire-2.5.28.tgz",
"integrity": "sha512-uD0j/AQOa5le7afuK+u+woi8jNKF1vf3DN0H7LCJhft/lNNibUr7VcAesdgtWfEKveZol3ZG1CJqwx2Bhrnl8w==" "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": { "acorn": {
"version": "5.7.3", "version": "5.7.3",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
@ -1052,6 +1165,14 @@
"rx-lite": "*" "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": { "safe-buffer": {
"version": "5.1.2", "version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
@ -1232,10 +1353,12 @@
"requires": { "requires": {
"@types/form-data": "^2.2.1", "@types/form-data": "^2.2.1",
"@types/isomorphic-fetch": "0.0.34", "@types/isomorphic-fetch": "0.0.34",
"@types/rx": "^4.1.1",
"btoa": "^1.2.1", "btoa": "^1.2.1",
"es6-promise": "^4.2.4", "es6-promise": "^4.2.4",
"form-data": "^2.3.2", "form-data": "^2.3.2",
"isomorphic-fetch": "^2.2.1", "isomorphic-fetch": "^2.2.1",
"rxjs": "^6.4.0",
"url-parse": "^1.4.3" "url-parse": "^1.4.3"
}, },
"dependencies": { "dependencies": {
@ -1254,6 +1377,106 @@
"version": "10.12.0", "version": "10.12.0",
"bundled": true "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": { "asynckit": {
"version": "0.4.0", "version": "0.4.0",
"bundled": true "bundled": true
@ -1313,14 +1536,14 @@
} }
}, },
"mime-db": { "mime-db": {
"version": "1.37.0", "version": "1.36.0",
"bundled": true "bundled": true
}, },
"mime-types": { "mime-types": {
"version": "2.1.21", "version": "2.1.20",
"bundled": true, "bundled": true,
"requires": { "requires": {
"mime-db": "~1.37.0" "mime-db": "~1.36.0"
} }
}, },
"node-fetch": { "node-fetch": {
@ -1339,10 +1562,25 @@
"version": "1.0.0", "version": "1.0.0",
"bundled": true "bundled": true
}, },
"rxjs": {
"version": "6.4.0",
"bundled": true,
"requires": {
"tslib": "^1.9.0"
}
},
"safer-buffer": { "safer-buffer": {
"version": "2.1.2", "version": "2.1.2",
"bundled": true "bundled": true
}, },
"tslib": {
"version": "1.9.3",
"bundled": true
},
"typescript": {
"version": "2.9.2",
"bundled": true
},
"url-parse": { "url-parse": {
"version": "1.4.3", "version": "1.4.3",
"bundled": true, "bundled": true,
@ -1366,6 +1604,11 @@
"strip-json-comments": "^2.0.0" "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": { "type-check": {
"version": "0.3.2", "version": "0.3.2",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",

View File

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

View File

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

View File

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