argos/dmp-frontend/src/app/services/interceptor.ts

31 lines
999 B
TypeScript

import {Injectable} from '@angular/core';
import {Observable} from 'rxjs/Observable';
import {HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse, HttpErrorResponse} from '@angular/common/http';
import {Router} from '@angular/router';
@Injectable()
export class GlobalInterceptor implements HttpInterceptor {
constructor( private router : Router) {}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(req).do((event: HttpEvent<any>) => {
/*
if (event instanceof HttpResponse) {
console.log("response ok");
}
*/
}, (err: any) => {
if (err instanceof HttpErrorResponse) {
if (err.status === 401) {
console.log("Received an unauthorized... redirecting to login page");
this.router.navigate(['/login'], { queryParams: { /*returnUrl: this.state.url*/ }});
}
}
});
//return next.handle(req);
}
}