libs/ngx-pfe/tracking/http-interceptor.service.ts

Relationships

Depends on

No results matching.

Index

Methods

Methods

intercept
intercept(request: HttpRequest, next: HttpHandler)
Parameters :
Name Type Optional
request HttpRequest<unknown> No
next HttpHandler No
Returns : Observable<HttpEvent<unknown>>
import { pushEvent } from '@allianz/tracking';
import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable, throwError as observableThrowError } from 'rxjs';
import { catchError } from 'rxjs/operators';

@Injectable()
export class TrackingHttpInterceptorService implements HttpInterceptor {
  intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {
    return next.handle(request).pipe(
      catchError((response) => {
        if (response instanceof HttpErrorResponse) {
          const xErrorCode = response.headers?.get('x-error-code');
          const httpError = {
            url: request.url,
            status: response.status,
            statusText: response.statusText,
            name: response.name,
            message: response.message,
            xErrorCode: xErrorCode,
          };

          pushEvent('httpError', httpError, true);
        }

        return observableThrowError(response);
      })
    );
  }
}

results matching ""

    No results matching ""