forked from loafle/openapi-generator-original
Added middleware to fetch
This commit is contained in:
parent
a7de49110e
commit
61a1bbdabe
@ -24,10 +24,21 @@ export class {{classname}} {
|
||||
{{#operation}}
|
||||
public {{nickname}}({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}options?: any): Promise<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}> {
|
||||
const requestContext = this.requestFactory.{{nickname}}({{#allParams}}{{paramName}}, {{/allParams}}options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.{{nickname}}(response);
|
||||
});
|
||||
|
||||
// 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}}
|
||||
|
@ -6,7 +6,6 @@ import 'isomorphic-fetch';
|
||||
export class IsomorphicFetchHttpLibrary implements HttpLibrary {
|
||||
|
||||
public send(request: RequestContext): Promise<ResponseContext> {
|
||||
console.log("Request: ", request);
|
||||
let method = request.getHttpMethod().toString();
|
||||
let body = request.getBody();
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
import {RequestContext, ResponseContext} from './http/http';
|
||||
|
||||
export interface Middleware {
|
||||
pre?(context: RequestContext): Promise<RequestContext>;
|
||||
post?(context: ResponseContext): Promise<ResponseContext>;
|
||||
pre(context: RequestContext): Promise<RequestContext>;
|
||||
post(context: ResponseContext): Promise<ResponseContext>;
|
||||
}
|
||||
|
||||
// TODO: package.json set npmName
|
@ -21,66 +21,154 @@ export class PetApi {
|
||||
|
||||
public addPet(pet: Pet, options?: any): Promise<void> {
|
||||
const requestContext = this.requestFactory.addPet(pet, options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.addPet(response);
|
||||
});
|
||||
|
||||
// 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.addPet(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
public deletePet(petId: number, apiKey?: string, options?: any): Promise<void> {
|
||||
const requestContext = this.requestFactory.deletePet(petId, apiKey, options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.deletePet(response);
|
||||
});
|
||||
|
||||
// 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.deletePet(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
public findPetsByStatus(status: Array<'available' | 'pending' | 'sold'>, options?: any): Promise<Array<Pet>> {
|
||||
const requestContext = this.requestFactory.findPetsByStatus(status, options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.findPetsByStatus(response);
|
||||
});
|
||||
|
||||
// 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.findPetsByStatus(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
public findPetsByTags(tags: Array<string>, options?: any): Promise<Array<Pet>> {
|
||||
const requestContext = this.requestFactory.findPetsByTags(tags, options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.findPetsByTags(response);
|
||||
});
|
||||
|
||||
// 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.findPetsByTags(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
public getPetById(petId: number, options?: any): Promise<Pet> {
|
||||
const requestContext = this.requestFactory.getPetById(petId, options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.getPetById(response);
|
||||
});
|
||||
|
||||
// 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.getPetById(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
public updatePet(pet: Pet, options?: any): Promise<void> {
|
||||
const requestContext = this.requestFactory.updatePet(pet, options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.updatePet(response);
|
||||
});
|
||||
|
||||
// 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.updatePet(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
public updatePetWithForm(petId: number, name?: string, status?: string, options?: any): Promise<void> {
|
||||
const requestContext = this.requestFactory.updatePetWithForm(petId, name, status, options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.updatePetWithForm(response);
|
||||
});
|
||||
|
||||
// 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.updatePetWithForm(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
public uploadFile(petId: number, additionalMetadata?: string, file?: any, options?: any): Promise<ApiResponse> {
|
||||
const requestContext = this.requestFactory.uploadFile(petId, additionalMetadata, file, options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.uploadFile(response);
|
||||
});
|
||||
|
||||
// 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.uploadFile(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -101,34 +189,78 @@ export class StoreApi {
|
||||
|
||||
public deleteOrder(orderId: string, options?: any): Promise<void> {
|
||||
const requestContext = this.requestFactory.deleteOrder(orderId, options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.deleteOrder(response);
|
||||
});
|
||||
|
||||
// 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.deleteOrder(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
public getInventory(options?: any): Promise<{ [key: string]: number; }> {
|
||||
const requestContext = this.requestFactory.getInventory(options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.getInventory(response);
|
||||
});
|
||||
|
||||
// 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.getInventory(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
public getOrderById(orderId: number, options?: any): Promise<Order> {
|
||||
const requestContext = this.requestFactory.getOrderById(orderId, options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.getOrderById(response);
|
||||
});
|
||||
|
||||
// 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.getOrderById(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
public placeOrder(order: Order, options?: any): Promise<Order> {
|
||||
const requestContext = this.requestFactory.placeOrder(order, options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.placeOrder(response);
|
||||
});
|
||||
|
||||
// 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.placeOrder(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -149,66 +281,154 @@ export class UserApi {
|
||||
|
||||
public createUser(user: User, options?: any): Promise<void> {
|
||||
const requestContext = this.requestFactory.createUser(user, options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.createUser(response);
|
||||
});
|
||||
|
||||
// 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.createUser(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
public createUsersWithArrayInput(user: Array<User>, options?: any): Promise<void> {
|
||||
const requestContext = this.requestFactory.createUsersWithArrayInput(user, options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.createUsersWithArrayInput(response);
|
||||
});
|
||||
|
||||
// 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.createUsersWithArrayInput(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
public createUsersWithListInput(user: Array<User>, options?: any): Promise<void> {
|
||||
const requestContext = this.requestFactory.createUsersWithListInput(user, options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.createUsersWithListInput(response);
|
||||
});
|
||||
|
||||
// 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.createUsersWithListInput(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
public deleteUser(username: string, options?: any): Promise<void> {
|
||||
const requestContext = this.requestFactory.deleteUser(username, options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.deleteUser(response);
|
||||
});
|
||||
|
||||
// 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.deleteUser(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
public getUserByName(username: string, options?: any): Promise<User> {
|
||||
const requestContext = this.requestFactory.getUserByName(username, options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.getUserByName(response);
|
||||
});
|
||||
|
||||
// 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.getUserByName(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
public loginUser(username: string, password: string, options?: any): Promise<string> {
|
||||
const requestContext = this.requestFactory.loginUser(username, password, options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.loginUser(response);
|
||||
});
|
||||
|
||||
// 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.loginUser(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
public logoutUser(options?: any): Promise<void> {
|
||||
const requestContext = this.requestFactory.logoutUser(options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.logoutUser(response);
|
||||
});
|
||||
|
||||
// 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.logoutUser(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
public updateUser(username: string, user: User, options?: any): Promise<void> {
|
||||
const requestContext = this.requestFactory.updateUser(username, user, options);
|
||||
|
||||
return this.configuration.httpApi.send(requestContext).then((response: ResponseContext) => {
|
||||
return this.responseProcessor.updateUser(response);
|
||||
});
|
||||
|
||||
// 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.updateUser(rsp));
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
@ -6,7 +6,6 @@ import 'isomorphic-fetch';
|
||||
export class IsomorphicFetchHttpLibrary implements HttpLibrary {
|
||||
|
||||
public send(request: RequestContext): Promise<ResponseContext> {
|
||||
console.log("Request: ", request);
|
||||
let method = request.getHttpMethod().toString();
|
||||
let body = request.getBody();
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
import {RequestContext, ResponseContext} from './http/http';
|
||||
|
||||
export interface Middleware {
|
||||
pre?(context: RequestContext): Promise<RequestContext>;
|
||||
post?(context: ResponseContext): Promise<ResponseContext>;
|
||||
pre(context: RequestContext): Promise<RequestContext>;
|
||||
post(context: ResponseContext): Promise<ResponseContext>;
|
||||
}
|
||||
|
||||
// TODO: package.json set npmName
|
@ -1,12 +1,30 @@
|
||||
import {PetApi} from './api';
|
||||
import {Configuration } from './configuration';
|
||||
import { Middleware } from './middleware';
|
||||
import { RequestContext, ResponseContext } from './http/http';
|
||||
|
||||
const config = new Configuration();
|
||||
class MiddlewareA implements Middleware {
|
||||
|
||||
public pre(request: RequestContext) {
|
||||
console.log(request);
|
||||
return Promise.resolve(request);
|
||||
}
|
||||
|
||||
public post(response: ResponseContext) {
|
||||
console.log(response)
|
||||
return Promise.resolve(response);
|
||||
}
|
||||
}
|
||||
|
||||
const config = new Configuration({
|
||||
middleware: [
|
||||
new MiddlewareA()
|
||||
]
|
||||
});
|
||||
const api = new PetApi(config);
|
||||
|
||||
api.getPetById(3).then((pet) => {
|
||||
console.log(pet)
|
||||
}).catch((err) => {
|
||||
|
||||
console.log(err);
|
||||
console.log(err);
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user