From a8a92965918d7b16395ace781d476d203cefe2be Mon Sep 17 00:00:00 2001 From: Valentin Mihai Date: Tue, 7 Feb 2023 16:25:43 +0200 Subject: [PATCH] RED-6117 - Integrate tenant request header --- apps/red-ui/src/app/app.module.ts | 6 ++++++ .../utils/tenant-id-response-interceptor.ts | 18 ++++++++++++++++++ libs/common-ui | 2 +- 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 apps/red-ui/src/app/utils/tenant-id-response-interceptor.ts diff --git a/apps/red-ui/src/app/app.module.ts b/apps/red-ui/src/app/app.module.ts index c03e2dc52..7c899bce0 100644 --- a/apps/red-ui/src/app/app.module.ts +++ b/apps/red-ui/src/app/app.module.ts @@ -64,6 +64,7 @@ import { RedRoleGuard } from '@users/red-role.guard'; import { SkeletonTopBarComponent } from '@components/skeleton/skeleton-top-bar/skeleton-top-bar.component'; import { DossierSkeletonComponent } from '@components/skeleton/dossier-skeleton/dossier-skeleton.component'; import { SkeletonStatsComponent } from '@components/skeleton/skeleton-stats/skeleton-stats.component'; +import { TenantIdResponseInterceptor } from '@utils/tenant-id-response-interceptor'; const screens = [BaseScreenComponent, DownloadsListScreenComponent]; @@ -168,6 +169,11 @@ export const appModuleFactory = (config: AppConfig) => { multi: true, useClass: TenantIdInterceptor, }, + { + provide: HTTP_INTERCEPTORS, + multi: true, + useClass: TenantIdResponseInterceptor, + }, { provide: APP_INITIALIZER, multi: true, diff --git a/apps/red-ui/src/app/utils/tenant-id-response-interceptor.ts b/apps/red-ui/src/app/utils/tenant-id-response-interceptor.ts new file mode 100644 index 000000000..1bc9ee7b6 --- /dev/null +++ b/apps/red-ui/src/app/utils/tenant-id-response-interceptor.ts @@ -0,0 +1,18 @@ +import { Injectable } from '@angular/core'; +import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest, HttpResponse } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { tap } from 'rxjs/operators'; + +@Injectable() +export class TenantIdResponseInterceptor implements HttpInterceptor { + intercept(req: HttpRequest, next: HttpHandler): Observable> { + return next.handle(req).pipe( + tap(event => { + if (event instanceof HttpResponse) { + const xTenantId = event.headers.get('X-TENANT-ID'); + //TODO check tenant id when backend will be done + } + }), + ); + } +} diff --git a/libs/common-ui b/libs/common-ui index c217b5f07..65da4e2d5 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit c217b5f07f57a9a3fb37bb795b5b52066788a790 +Subproject commit 65da4e2d53010ac0b02b3e0c6e89325838b5dd56