2017-10-27 10:20:35 +02:00
|
|
|
import {Injectable} from '@angular/core';
|
|
|
|
import {Observable} from 'rxjs/Observable';
|
|
|
|
import {HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpResponse, HttpErrorResponse} from '@angular/common/http';
|
2017-11-01 18:18:27 +01:00
|
|
|
import { TokenService, TokenProvider } from './login/token.service';
|
2017-10-27 10:20:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
@Injectable()
|
|
|
|
export class GlobalInterceptor implements HttpInterceptor {
|
|
|
|
|
2017-11-01 18:18:27 +01:00
|
|
|
constructor(public tokenService: TokenService) {}
|
2017-10-27 10:20:35 +02:00
|
|
|
|
|
|
|
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) => {
|
2017-11-01 18:18:27 +01:00
|
|
|
if (err instanceof HttpErrorResponse) {
|
2017-10-27 10:20:35 +02:00
|
|
|
if (err.status === 401) {
|
2017-11-01 18:18:27 +01:00
|
|
|
this.tokenService.logout();
|
2017-10-27 10:20:35 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2017-11-01 18:18:27 +01:00
|
|
|
|
|
|
|
//return next.handle(req);
|
2017-10-27 10:20:35 +02:00
|
|
|
}
|
|
|
|
}
|