Skip to content
Snippets Groups Projects
Commit 41f9609a authored by OZGCloud's avatar OZGCloud
Browse files

OZG-959 fix interceptor; set retry intervall to 1 sec and time to 6min

parent c10fe27e
No related branches found
No related tags found
No related merge requests found
import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpXsrfTokenExtractor } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { addRequestHeader } from '@goofy-client/tech-shared';
import { Observable } from 'rxjs';
import { addRequestHeader, existRequestHeader, isChangingDataRequest } from '../http.util';
import { existRequestHeader, isChangingDataRequest } from '../http.util';
@Injectable()
export class HttpXsrfInterceptor implements HttpInterceptor {
......@@ -12,16 +13,17 @@ export class HttpXsrfInterceptor implements HttpInterceptor {
intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {
if (isChangingDataRequest(request)) {
this.handleRequest(request);
request = this.handleRequest(request);
}
return next.handle(request);
}
private handleRequest(request: HttpRequest<unknown>): void {
private handleRequest(request: HttpRequest<unknown>): HttpRequest<unknown> {
let token: string = this.getToken();
if (token !== null && !existRequestHeader(request, this.X_XSRF_TOKEN_HEADER)) {
request = addRequestHeader(request, this.X_XSRF_TOKEN_HEADER, token);
}
return request;
}
private getToken(): string {
......
......@@ -9,7 +9,7 @@ import { DialogService, RetryInTimeDialog } from '../ui/dialog/dialog.service';
@Injectable()
export class HttpConnectionTimeoutInterceptor implements HttpInterceptor {
private readonly DELAY_BEFORE_RETRY_MS = 2000;
private readonly DELAY_BEFORE_RETRY_MS = 1000;
retryDialog: RetryInTimeDialog = null;
......
......@@ -13,20 +13,20 @@ export class HttpErrorInterceptor implements HttpInterceptor {
constructor(private dialogService: DialogService, private snackbarService: SnackBarService) { }
intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {
return next.handle(request).pipe(catchError((event: any) => this.handleError(event.response)));
return next.handle(request).pipe(catchError((error: any) => this.handleError(error.response)));
}
handleError(response: HttpErrorResponse): Observable<any> {
if (isServerError(response.status)) {
this.handleServerError(response.error);
handleError(errorResponse: HttpErrorResponse): Observable<any> {
if (isServerError(errorResponse.status)) {
this.handleServerError(errorResponse.error);
}
if (isUnauthorized(response.status)) {
if (isUnauthorized(errorResponse.status)) {
this.reloadWindow();
}
if (isForbidden(response.status)) {
if (isForbidden(errorResponse.status)) {
this.handleForbiddenError();
}
return throwError({ response });
return throwError({ error: errorResponse });
}
reloadWindow(): void {
......
......@@ -50,7 +50,7 @@ export class DialogService {
export class RetryInTimeDialog {
private readonly retryTime = 12000;
private readonly retryTime = 300000;
private startTime: number;
constructor(private dialogService: DialogService, private dialog: MatDialog) { }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment