All files / src/app/shared/interceptors auth-interceptor.service.ts

47.62% Statements 10/21
0% Branches 0/4
25% Functions 1/4
47.06% Lines 8/17
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 291x 1x 1x     1x 1x     1x         1x                         1x  
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;
        }
      });
  }
}