From 4a754a8c898fb397e19876de2d19141d047a9e58 Mon Sep 17 00:00:00 2001 From: KrupaNagabhushan Date: Fri, 23 Sep 2022 10:17:29 +0100 Subject: View data types in UI catalog Issue-ID: SDC-4220 Signed-off-by: KrupaNagabhushan Change-Id: I880c7fedb58eafc7524fc6833b9b5d02f3b7d523 --- catalog-ui/src/app/ng2/services/catalog.service.ts | 36 +++++++++++++++------- 1 file changed, 25 insertions(+), 11 deletions(-) (limited to 'catalog-ui/src/app/ng2/services') 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> { + public getCatalog(): Observable> { let searchParams = new HttpParams(); searchParams = searchParams.append('excludeTypes', ResourceType.VFCMT).append('excludeTypes', ResourceType.CONFIGURATION); - return this.http.get(this.baseMicroServiceUrl + this.api.GET_uicache_catalog, {params: searchParams}) - .map(res => this.processComponentsResponse(res, true)); + const observableComponents = this.http.get(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(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 = []; + 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):Array { + return dataTypes.map(dataType => new DataTypeCatalogComponent(dataType)); + } + } \ No newline at end of file -- cgit 1.2.3-korg