summaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/ng2/services/catalog.service.ts
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-ui/src/app/ng2/services/catalog.service.ts')
-rw-r--r--catalog-ui/src/app/ng2/services/catalog.service.ts36
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