From fb4bdbfcfbd68a2118d341bc959487ee25b72373 Mon Sep 17 00:00:00 2001 From: juancarmore Date: Thu, 12 Feb 2026 08:04:05 +0100 Subject: [PATCH] frontend: refactor error handlers to utilize dedicated header provider services for token management --- .../auth-error-handler.service.ts | 13 ++++--------- .../room-member-error-handler.service.ts | 13 +++++-------- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/auth/interceptor-handlers/auth-error-handler.service.ts b/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/auth/interceptor-handlers/auth-error-handler.service.ts index 353da536..488edbe8 100644 --- a/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/auth/interceptor-handlers/auth-error-handler.service.ts +++ b/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/auth/interceptor-handlers/auth-error-handler.service.ts @@ -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); }), diff --git a/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/room-members/interceptor-handlers/room-member-error-handler.service.ts b/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/room-members/interceptor-handlers/room-member-error-handler.service.ts index 474ca7d1..0f5f82da 100644 --- a/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/room-members/interceptor-handlers/room-member-error-handler.service.ts +++ b/meet-ce/frontend/projects/shared-meet-components/src/lib/domains/room-members/interceptor-handlers/room-member-error-handler.service.ts @@ -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); }),