import { ResponseContext, RequestContext, HttpFile } from '../http/http'; import * as models from '../models/all'; import { Configuration} from '../configuration' import { Observable, of, from } from '../rxjsStub'; import {mergeMap, map} from '../rxjsStub'; import { ServiceStatusControllerApiRequestFactory, ServiceStatusControllerApiResponseProcessor} from "../apis/ServiceStatusControllerApi"; export class ObservableServiceStatusControllerApi { private requestFactory: ServiceStatusControllerApiRequestFactory; private responseProcessor: ServiceStatusControllerApiResponseProcessor; private configuration: Configuration; public constructor( configuration: Configuration, requestFactory?: ServiceStatusControllerApiRequestFactory, responseProcessor?: ServiceStatusControllerApiResponseProcessor ) { this.configuration = configuration; this.requestFactory = requestFactory || new ServiceStatusControllerApiRequestFactory(configuration); this.responseProcessor = responseProcessor || new ServiceStatusControllerApiResponseProcessor(); } /** */ public status(options?: Configuration): Observable { const requestContextPromise = this.requestFactory.status(options); // build promise chain let middlewarePreObservable = from(requestContextPromise); 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.status(rsp))); })); } }