From ff76b5ed0aa91d5fdf9dc4f95e8b20f91ed9d072 Mon Sep 17 00:00:00 2001 From: "Sonsino, Ofir (os0695)" Date: Tue, 10 Jul 2018 15:57:37 +0300 Subject: New Angular UI from 1806 Change-Id: I39c160db0e0a6ec2e587ccf007ee1b23c6a08666 Issue-ID: VID-208 Signed-off-by: Sonsino, Ofir (os0695) --- .../httpInterceptor/httpInterceptor.service.ts | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 vid-webpack-master/src/app/shared/utils/httpInterceptor/httpInterceptor.service.ts (limited to 'vid-webpack-master/src/app/shared/utils/httpInterceptor') diff --git a/vid-webpack-master/src/app/shared/utils/httpInterceptor/httpInterceptor.service.ts b/vid-webpack-master/src/app/shared/utils/httpInterceptor/httpInterceptor.service.ts new file mode 100644 index 000000000..be9ade080 --- /dev/null +++ b/vid-webpack-master/src/app/shared/utils/httpInterceptor/httpInterceptor.service.ts @@ -0,0 +1,32 @@ +import { Injectable } from '@angular/core'; +import { + HttpInterceptor, + HttpRequest, + HttpHandler, + HttpEvent, HttpErrorResponse +} from '@angular/common/http'; + +import { Observable } from 'rxjs/Observable'; +import { ErrorMessage, ErrorService } from '../../components/error/error.component.service'; +import { SpinnerComponent } from '../../components/spinner/spinner.component'; + +@Injectable() +export class HttpInterceptorService implements HttpInterceptor { + intercept(request: HttpRequest, next: HttpHandler): Observable> { + SpinnerComponent.showSpinner.next(true); + return next.handle(request) + .catch((err: HttpErrorResponse) => { + if (err.status === 500) { + const errorMessage: ErrorMessage = new ErrorMessage('Server not available', + 'It appears that one of the backend servers is not responding.\n Please try later.', + 500); + ErrorService.showErrorWithMessage(errorMessage); + return Observable.of(null); + } + return Observable.throw(err); + }).finally(() => { + SpinnerComponent.showSpinner.next(false); + }); + } +} + -- cgit