Browse Source

UI: Add new function in tenant profiles service

pull/7911/head
Vladyslav_Prykhodko 4 years ago
parent
commit
d66d882a0c
  1. 4
      ui-ngx/src/app/core/http/entity.service.ts
  2. 9
      ui-ngx/src/app/core/http/tenant-profile.service.ts
  3. 11
      ui-ngx/src/app/shared/models/base-data.ts

4
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(

9
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<PageData<EntityInfoData>>(`/api/tenantProfileInfos${pageLink.toQuery()}`, defaultHttpOptionsFromConfig(config));
}
public getTenantProfilesByIds(tenantProfileIds: Array<string>, config?: RequestConfig): Observable<Array<EntityInfoData>> {
return this.http.get<Array<EntityInfoData>>(`/api/tenantProfiles?ids=${tenantProfileIds.join(',')}`,
defaultHttpOptionsFromConfig(config)).pipe(
map((tenantProfiles) => sortEntitiesByIds(tenantProfiles, tenantProfileIds))
);
}
}

11
ui-ngx/src/app/shared/models/base-data.ts

@ -27,6 +27,17 @@ export interface BaseData<T extends HasId> {
label?: string;
}
export function sortEntitiesByIds<I extends HasId, T extends BaseData<I>>(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<T extends EntityId> {
createdTime?: number;
id?: T;

Loading…
Cancel
Save