import { HttpRequest, HttpHandler, HttpInterceptor, HttpEvent, HttpResponse } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/do';
import { AppComponent } from '../../app.component';
@Injectable()
export class AuthInterceptorService implements HttpInterceptor {
hasHeader = true;
constructor(private router: Router, private app: AppComponent) { }
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next
.handle(req)
.do(event => {
if (event instanceof HttpResponse) {
const code: number = JSON.parse(event.body).code;
if (code !== 200) {
this.app.hasHeader = false;
this.router.navigate(['/login']);
} else this.app.hasHeader = true;
}
});
}
}
|