From d66d882a0c022bcb145a11969842ad829fa30bab Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Mon, 20 Mar 2023 15:07:28 +0200 Subject: [PATCH] UI: Add new function in tenant profiles service --- ui-ngx/src/app/core/http/entity.service.ts | 4 +--- ui-ngx/src/app/core/http/tenant-profile.service.ts | 9 +++++++++ ui-ngx/src/app/shared/models/base-data.ts | 11 +++++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/ui-ngx/src/app/core/http/entity.service.ts b/ui-ngx/src/app/core/http/entity.service.ts index ec4820bad8..1f58b2f94b 100644 --- a/ui-ngx/src/app/core/http/entity.service.ts +++ b/ui-ngx/src/app/core/http/entity.service.ts @@ -244,9 +244,7 @@ export class EntityService { entityIds); break; case EntityType.TENANT_PROFILE: - observable = this.getEntitiesByIdsObservable( - (id) => this.tenantProfileService.getTenantProfileInfo(id, config), - entityIds); + observable = this.tenantProfileService.getTenantProfilesByIds(entityIds, config); break; case EntityType.ASSET_PROFILE: observable = this.getEntitiesByIdsObservable( diff --git a/ui-ngx/src/app/core/http/tenant-profile.service.ts b/ui-ngx/src/app/core/http/tenant-profile.service.ts index d58f5d0509..26c8cd0045 100644 --- a/ui-ngx/src/app/core/http/tenant-profile.service.ts +++ b/ui-ngx/src/app/core/http/tenant-profile.service.ts @@ -22,6 +22,8 @@ import { Observable } from 'rxjs'; import { PageData } from '@shared/models/page/page-data'; import { TenantProfile } from '@shared/models/tenant.model'; import { EntityInfoData } from '@shared/models/entity.models'; +import { sortEntitiesByIds } from '@shared/models/base-data'; +import { map } from 'rxjs/operators'; @Injectable({ providedIn: 'root' @@ -64,4 +66,11 @@ export class TenantProfileService { return this.http.get>(`/api/tenantProfileInfos${pageLink.toQuery()}`, defaultHttpOptionsFromConfig(config)); } + public getTenantProfilesByIds(tenantProfileIds: Array, config?: RequestConfig): Observable> { + return this.http.get>(`/api/tenantProfiles?ids=${tenantProfileIds.join(',')}`, + defaultHttpOptionsFromConfig(config)).pipe( + map((tenantProfiles) => sortEntitiesByIds(tenantProfiles, tenantProfileIds)) + ); + } + } diff --git a/ui-ngx/src/app/shared/models/base-data.ts b/ui-ngx/src/app/shared/models/base-data.ts index ff638a3b95..16022641aa 100644 --- a/ui-ngx/src/app/shared/models/base-data.ts +++ b/ui-ngx/src/app/shared/models/base-data.ts @@ -27,6 +27,17 @@ export interface BaseData { label?: string; } +export function sortEntitiesByIds>(entities: T[], entityIds: string[]): T[] { + entities.sort((entity1, entity2) => { + const id1 = entity1.id.id; + const id2 = entity2.id.id; + const index1 = entityIds.indexOf(id1); + const index2 = entityIds.indexOf(id2); + return index1 - index2; + }); + return entities; +} + export interface ExportableEntity { createdTime?: number; id?: T;