From 773171f4afce02892fc609c4594fde26d30500b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adina=20=C8=9Aeudan?= Date: Wed, 31 Jan 2024 11:40:09 +0200 Subject: [PATCH] Get tenant details --- src/lib/tenants/index.ts | 1 + src/lib/tenants/services/tenants.service.ts | 11 ++++++++++- src/lib/tenants/types/index.ts | 1 + src/lib/tenants/types/tenant.ts | 7 +++++++ 4 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 src/lib/tenants/types/index.ts create mode 100644 src/lib/tenants/types/tenant.ts diff --git a/src/lib/tenants/index.ts b/src/lib/tenants/index.ts index 8119f9a..e3064d8 100644 --- a/src/lib/tenants/index.ts +++ b/src/lib/tenants/index.ts @@ -3,3 +3,4 @@ export * from './services'; export * from './tenants.module'; export * from './tenant-select/tenant-select.component'; export * from './services/keycloak-status.service'; +export * from './types'; diff --git a/src/lib/tenants/services/tenants.service.ts b/src/lib/tenants/services/tenants.service.ts index 5114aa0..7fcf40e 100644 --- a/src/lib/tenants/services/tenants.service.ts +++ b/src/lib/tenants/services/tenants.service.ts @@ -2,6 +2,9 @@ import { inject, Injectable, signal } from '@angular/core'; import dayjs from 'dayjs'; import { NGXLogger } from 'ngx-logger'; import { List } from '../../utils'; +import { GenericService } from '../../services'; +import { Tenant } from '../types'; +import { Observable } from 'rxjs'; export interface IStoredTenantId { readonly tenantId: string; @@ -13,7 +16,7 @@ export type StoredTenantIds = List; const STORED_TENANTS_KEY = 'red-stored-tenants'; @Injectable({ providedIn: 'root' }) -export class TenantsService { +export class TenantsService extends GenericService { readonly #logger = inject(NGXLogger); readonly #storageReference: Storage = { length: localStorage.length, @@ -24,6 +27,8 @@ export class TenantsService { key: localStorage.key.bind(localStorage), }; readonly #activeTenantId = signal(''); + + protected readonly _defaultModelPath = 'tenants'; protected readonly _serviceName: string = 'tenant-user-management'; get activeTenantId() { @@ -96,6 +101,10 @@ export class TenantsService { this.#logger.info('[TENANTS] Stored tenants at logout: ', storedTenants); } + getActiveTenant>(): Observable> { + return this._getOne([this.activeTenantId]); + } + #setActiveTenantId(tenantId: string) { this.#logger.info('[TENANTS] Set current tenant id: ', tenantId); this.#activeTenantId.set(tenantId); diff --git a/src/lib/tenants/types/index.ts b/src/lib/tenants/types/index.ts new file mode 100644 index 0000000..94a1c2b --- /dev/null +++ b/src/lib/tenants/types/index.ts @@ -0,0 +1 @@ +export * from './tenant'; diff --git a/src/lib/tenants/types/tenant.ts b/src/lib/tenants/types/tenant.ts new file mode 100644 index 0000000..756e100 --- /dev/null +++ b/src/lib/tenants/types/tenant.ts @@ -0,0 +1,7 @@ +export type TenantDetails = Record; + +export interface Tenant { + tenantId: string; + displayName: string; + details: TD; +}