libs/ngx-pfe/tracking/http-interceptor.service.ts
No results matching.
Methods |
| intercept | |||||||||
intercept(request: HttpRequest
|
|||||||||
|
Parameters :
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);
})
);
}
}