diff options
author | KrupaNagabhushan <krupa.nagabhushan@est.tech> | 2022-09-23 10:17:29 +0100 |
---|---|---|
committer | Michael Morris <michael.morris@est.tech> | 2022-11-30 16:40:22 +0000 |
commit | 4a754a8c898fb397e19876de2d19141d047a9e58 (patch) | |
tree | 164634a57dc675cd45d84fbc40dc843cac57ca77 /catalog-ui/src/app/ng2/services | |
parent | 1ed328d96144bc626f664e2a5c45894393e8308e (diff) |
View data types in UI catalog
Issue-ID: SDC-4220
Signed-off-by: KrupaNagabhushan <krupa.nagabhushan@est.tech>
Change-Id: I880c7fedb58eafc7524fc6833b9b5d02f3b7d523
Diffstat (limited to 'catalog-ui/src/app/ng2/services')
-rw-r--r-- | catalog-ui/src/app/ng2/services/catalog.service.ts | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/catalog-ui/src/app/ng2/services/catalog.service.ts b/catalog-ui/src/app/ng2/services/catalog.service.ts index bbdfa1b420..fcb9dd4006 100644 --- a/catalog-ui/src/app/ng2/services/catalog.service.ts +++ b/catalog-ui/src/app/ng2/services/catalog.service.ts @@ -21,11 +21,15 @@ import { Injectable, Inject } from "@angular/core"; import { Observable } from "rxjs/Observable"; import { SdcConfigToken, ISdcConfig } from "../config/sdc-config.config"; -import { Component, IApi, IComponentsArray } from "app/models"; +import {Component, DataTypeModel, IApi, IComponentsArray} from "app/models"; import { ComponentFactory } from 'app/utils/component-factory'; import {ResourceType} from "../../utils/constants"; import {SharingService} from "./sharing.service"; import { HttpClient, HttpParams } from "@angular/common/http"; +import {DataTypesService} from "../../services/data-types-service"; +import {DataTypeCatalogComponent} from "../../models/data-type-catalog-component"; +import {zip} from "rxjs"; +import {map} from "rxjs/operators"; @Injectable() export class CatalogService { @@ -36,31 +40,37 @@ export class CatalogService { constructor(private http: HttpClient, @Inject(SdcConfigToken) sdcConfig:ISdcConfig, private componentFactory:ComponentFactory, + private dataTypesService:DataTypesService, private sharingService:SharingService) { this.api = sdcConfig.api; this.baseUrl = sdcConfig.api.root ; this.baseMicroServiceUrl = sdcConfig.api.uicache_root; } - public getCatalog(): Observable<Array<Component>> { + public getCatalog(): Observable<Array<Component | DataTypeCatalogComponent>> { let searchParams = new HttpParams(); searchParams = searchParams.append('excludeTypes', ResourceType.VFCMT).append('excludeTypes', ResourceType.CONFIGURATION); - return this.http.get<IComponentsArray>(this.baseMicroServiceUrl + this.api.GET_uicache_catalog, {params: searchParams}) - .map(res => this.processComponentsResponse(res, true)); + const observableComponents = this.http.get<IComponentsArray>(this.baseMicroServiceUrl + this.api.GET_uicache_catalog, {params: searchParams}); + const observableDataTypes = this.dataTypesService.getDataTypesFromAllModel(); + return zip(observableComponents, observableDataTypes) + .pipe(map(res => this.processComponentsResponse(res, true))); } public getArchiveCatalog() { return this.http.get<IComponentsArray>(this.baseUrl + '/v1/catalog/archive/', {}) - .map(res => this.processComponentsResponse(res)); + .map(res => this.processComponentsResponse(res[0])); } - private processComponentsResponse(componentsArr: IComponentsArray, addSharing:boolean = false) { - const componentsList: Component[] = []; - if (componentsArr.resources) { - componentsList.push(...this.getResourceItems(componentsArr.resources)); + private processComponentsResponse(componentsArr: [IComponentsArray, DataTypeModel[]], addSharing:boolean = false) { + const componentsList:Array<Component | DataTypeCatalogComponent> = []; + if (componentsArr[0].resources) { + componentsList.push(...this.getResourceItems(componentsArr[0].resources)); } - if (componentsArr.services) { - componentsList.push(...this.getServiceItems(componentsArr.services)); + if (componentsArr[0].services) { + componentsList.push(...this.getServiceItems(componentsArr[0].services)); + } + if (componentsArr[1]) { + componentsList.push(...this.getDataTypesItems(componentsArr[1])); } if (addSharing) { componentsList.forEach((item) => this.sharingService.addUuidValue(item.uniqueId, item.uuid)); @@ -82,4 +92,8 @@ export class CatalogService { return serviceItems; } + private getDataTypesItems(dataTypes: Array<DataTypeModel>):Array<DataTypeCatalogComponent> { + return dataTypes.map(dataType => new DataTypeCatalogComponent(dataType)); + } + }
\ No newline at end of file |