import { Observable, throwError as _observableThrow, of as _observableOf } from 'rxjs'; import { mergeMap as _observableMergeMap, catchError as _observableCatch } from 'rxjs/operators'; import { HttpResponseBase, HttpResponse } from '@angular/common/http'; export class SwaggerException extends Error { message: string; status: number; response: string; headers: { [key: string]: any; }; result: any; constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) { super(); this.message = message; this.status = status; this.response = response; this.headers = headers; this.result = result; } protected isSwaggerException = true; static isSwaggerException(obj: any): obj is SwaggerException { return obj.isSwaggerException === true; } } export function throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): Observable { if (result !== null && result !== undefined) return _observableThrow(result); else return _observableThrow(new SwaggerException(message, status, response, headers, null)); } export function blobToText(blob: any): Observable { return new Observable((observer: any) => { if (!blob) { observer.next(''); observer.complete(); } else { const reader = new FileReader(); reader.onload = event => { observer.next((event.target).result); observer.complete(); }; reader.readAsText(blob); } }); } export function processStatus(response: HttpResponseBase): Observable { const jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined; const status = response.status; const responseBlob = response instanceof HttpResponse ? response.body : (response).error instanceof Blob ? (response).error : undefined; const _headers: any = {}; if (response.headers) { for (const key of response.headers.keys()) { _headers[key] = response.headers.get(key); } } if (status === 200) { return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => { const resultData200 = _responseText === '' ? null : JSON.parse(_responseText, jsonParseReviver); return _observableOf(resultData200); })); } else if (status !== 200 && status !== 204) { return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => { return throwException('An unexpected server error occurred.', status, _responseText, _headers); })); } return _observableOf(null); }