[SDC-29] catalog 1707 rebase commit.
Change-Id: I43c3dc5cf44abf5da817649bc738938a3e8388c1
Signed-off-by: Michael Lando <ml636r@att.com>
diff --git a/catalog-ui/src/app/services/entity-service.ts b/catalog-ui/src/app/services/entity-service.ts
new file mode 100644
index 0000000..d480bf9
--- /dev/null
+++ b/catalog-ui/src/app/services/entity-service.ts
@@ -0,0 +1,94 @@
+'use strict';
+import {Product, Service, IApi, IAppConfigurtaion, Resource, Component} from "../models";
+import {SharingService} from "./sharing-service";
+import {ComponentFactory} from "../utils/component-factory";
+import {CacheService} from "./cache-service";
+
+interface IEntityService {
+ getAllComponents():ng.IPromise<Array<Component>>;
+}
+
+interface IComponentsArray {
+ services:Array<Service>;
+ resources:Array<Resource>;
+ products:Array<Product>;
+}
+
+export class EntityService implements IEntityService {
+ static '$inject' = ['$http', '$q', 'sdcConfig', 'Sdc.Services.SharingService', 'ComponentFactory', 'Sdc.Services.CacheService'];
+ private api:IApi;
+
+ constructor(private $http:ng.IHttpService,
+ private $q:ng.IQService,
+ private sdcConfig:IAppConfigurtaion,
+ private sharingService:SharingService,
+ private ComponentFactory:ComponentFactory,
+ private cacheService:CacheService) {
+ this.api = sdcConfig.api;
+ }
+
+ getCatalog = ():ng.IPromise<Array<Component>> => {
+ let defer = this.$q.defer<Array<Component>>();
+ this.$http.get(this.api.root + this.api.GET_catalog)
+ .then((response:any) => {
+ let followedResponse: IComponentsArray = response.data;
+ let componentsList:Array<Component> = new Array();
+
+ followedResponse.services.forEach((serviceResponse:Service) => {
+ let component:Service = this.ComponentFactory.createService(serviceResponse); // new Service(serviceResponse);
+ componentsList.push(component);
+ this.sharingService.addUuidValue(component.uniqueId, component.uuid);
+ });
+
+ followedResponse.resources.forEach((resourceResponse:Resource) => {
+ let component:Resource = this.ComponentFactory.createResource(resourceResponse);
+ componentsList.push(component);
+ this.sharingService.addUuidValue(component.uniqueId, component.uuid);
+ });
+
+ followedResponse.products.forEach((productResponse:Product) => {
+
+ let component:Product = this.ComponentFactory.createProduct(productResponse);
+ componentsList.push(component);
+ this.sharingService.addUuidValue(component.uniqueId, component.uuid);
+ });
+
+ this.cacheService.set('breadcrumbsComponents', componentsList);
+ defer.resolve(componentsList);
+ },(responce) => {
+ defer.reject(responce);
+ });
+ return defer.promise;
+ };
+
+ getAllComponents = ():ng.IPromise<Array<Component>> => {
+ let defer = this.$q.defer<Array<Component>>();
+ this.$http.get(this.api.root + this.api.GET_element)
+ .then((response:any) => {
+ let componentResponse:IComponentsArray = response.data;
+ let componentsList:Array<Component> = [];
+
+ componentResponse.services && componentResponse.services.forEach((serviceResponse:Service) => {
+ let component:Service = this.ComponentFactory.createService(serviceResponse);
+ componentsList.push(component);
+ this.sharingService.addUuidValue(component.uniqueId, component.uuid);
+ });
+
+ componentResponse.resources && componentResponse.resources.forEach((resourceResponse:Resource) => {
+ let component:Resource = this.ComponentFactory.createResource(resourceResponse);
+ componentsList.push(component);
+ this.sharingService.addUuidValue(component.uniqueId, component.uuid);
+ });
+
+ componentResponse.products && componentResponse.products.forEach((productsResponse:Product) => {
+ let component:Product = this.ComponentFactory.createProduct(productsResponse);
+ componentsList.push(component);
+ this.sharingService.addUuidValue(component.uniqueId, component.uuid);
+ });
+ this.cacheService.set('breadcrumbsComponents', componentsList);
+ defer.resolve(componentsList);
+ });
+
+ return defer.promise;
+ };
+}