1 /* Copyright (c) 2019 AT&T Intellectual Property. #
\r
3 # Licensed under the Apache License, Version 2.0 (the "License"); #
\r
4 # you may not use this file except in compliance with the License. #
\r
5 # You may obtain a copy of the License at #
\r
7 # http://www.apache.org/licenses/LICENSE-2.0 #
\r
9 # Unless required by applicable law or agreed to in writing, software #
\r
10 # distributed under the License is distributed on an "AS IS" BASIS, #
\r
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
\r
12 # See the License for the specific language governing permissions and #
\r
13 # limitations under the License. #
\r
14 ##############################################################################*/
\r
17 import { Injectable } from '@angular/core';
\r
18 import { HttpRequest, HttpHandler, HttpEvent, HttpInterceptor } from '@angular/common/http';
\r
19 import { Observable, throwError } from 'rxjs';
\r
20 import { catchError } from 'rxjs/operators';
\r
21 import { Router } from '@angular/router';
\r
22 import { AuthService } from './shared/services/auth.service';
\r
26 export class ErrorInterceptor implements HttpInterceptor {
\r
27 constructor(private auth: AuthService, private router: Router) {}
\r
29 intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
\r
30 return next.handle(request).pipe(catchError(err => {
\r
31 if (err.status === 401) {
\r
32 // auto logout if 401 response returned from api
\r
34 this.router.navigateByUrl('/login');
\r
37 const error = err.error.message || err.statusText;
\r
38 return throwError(error);
\r