frontend: refactor error handlers to utilize dedicated header provider services for token management
This commit is contained in:
parent
8e8e2670c4
commit
fb4bdbfcfb
@ -1,6 +1,5 @@
|
||||
import { HttpErrorResponse, HttpEvent } from '@angular/common/http';
|
||||
import { Injectable, inject } from '@angular/core';
|
||||
import { Router } from '@angular/router';
|
||||
import { Observable, catchError, from, switchMap } from 'rxjs';
|
||||
import {
|
||||
HttpErrorContext,
|
||||
@ -9,6 +8,7 @@ import {
|
||||
} from '../../../shared/services/http-error-notifier.service';
|
||||
import { TokenStorageService } from '../../../shared/services/token-storage.service';
|
||||
import { AuthService } from '../services/auth.service';
|
||||
import { AuthHeaderProviderService } from './auth-header-provider.service';
|
||||
|
||||
/**
|
||||
* Handler for authentication-related HTTP errors.
|
||||
@ -22,6 +22,7 @@ export class AuthInterceptorErrorHandlerService implements HttpErrorHandler {
|
||||
private readonly authService = inject(AuthService);
|
||||
private readonly tokenStorageService = inject(TokenStorageService);
|
||||
private readonly httpErrorNotifier = inject(HttpErrorNotifierService);
|
||||
private readonly authHeaderProvider = inject(AuthHeaderProviderService);
|
||||
|
||||
/**
|
||||
* Registers this handler with the error notifier service
|
||||
@ -80,14 +81,8 @@ export class AuthInterceptorErrorHandlerService implements HttpErrorHandler {
|
||||
switchMap(() => {
|
||||
console.log('Access token refreshed');
|
||||
// Update the request with the new token
|
||||
const newToken = this.tokenStorageService.getAccessToken();
|
||||
const updatedRequest = newToken
|
||||
? originalRequest.clone({
|
||||
setHeaders: {
|
||||
authorization: `Bearer ${newToken}`
|
||||
}
|
||||
})
|
||||
: originalRequest;
|
||||
const headers = this.authHeaderProvider.provideHeaders();
|
||||
const updatedRequest = headers ? originalRequest.clone({ setHeaders: headers }) : originalRequest;
|
||||
|
||||
return next(updatedRequest);
|
||||
}),
|
||||
|
||||
@ -8,6 +8,7 @@ import {
|
||||
} from '../../../shared/services/http-error-notifier.service';
|
||||
import { MeetingContextService } from '../../meeting/services/meeting-context.service';
|
||||
import { RoomMemberContextService } from '../services/room-member-context.service';
|
||||
import { RoomMemberHeaderProviderService } from './room-member-header-provider.service';
|
||||
|
||||
/**
|
||||
* Handler for room member token-related HTTP errors.
|
||||
@ -21,6 +22,7 @@ export class RoomMemberInterceptorErrorHandlerService implements HttpErrorHandle
|
||||
private readonly roomMemberContextService = inject(RoomMemberContextService);
|
||||
private readonly meetingContextService = inject(MeetingContextService);
|
||||
private readonly httpErrorNotifier = inject(HttpErrorNotifierService);
|
||||
private readonly roomMemberHeaderProvider = inject(RoomMemberHeaderProviderService);
|
||||
|
||||
/**
|
||||
* Registers this handler with the error notifier service
|
||||
@ -84,15 +86,10 @@ export class RoomMemberInterceptorErrorHandlerService implements HttpErrorHandle
|
||||
).pipe(
|
||||
switchMap(() => {
|
||||
console.log('Room member token refreshed');
|
||||
|
||||
// Update the request with the new token
|
||||
const newToken = this.roomMemberContextService.getRoomMemberToken();
|
||||
const updatedRequest = newToken
|
||||
? originalRequest.clone({
|
||||
setHeaders: {
|
||||
'x-room-member-token': `Bearer ${newToken}`
|
||||
}
|
||||
})
|
||||
: originalRequest;
|
||||
const headers = this.roomMemberHeaderProvider.provideHeaders();
|
||||
const updatedRequest = headers ? originalRequest.clone({ setHeaders: headers }) : originalRequest;
|
||||
|
||||
return next(updatedRequest);
|
||||
}),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user