summaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/services/components/service-service.ts
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-ui/src/app/services/components/service-service.ts')
-rw-r--r--catalog-ui/src/app/services/components/service-service.ts86
1 files changed, 86 insertions, 0 deletions
diff --git a/catalog-ui/src/app/services/components/service-service.ts b/catalog-ui/src/app/services/components/service-service.ts
new file mode 100644
index 0000000000..f0fe90bf7f
--- /dev/null
+++ b/catalog-ui/src/app/services/components/service-service.ts
@@ -0,0 +1,86 @@
+/**
+ * Created by obarda on 2/4/2016.
+ */
+'use strict';
+import {IComponentService, ComponentService} from "./component-service";
+import {Distribution, DistributionComponent, Service, PropertyModel, Component, IAppConfigurtaion} from "app/models";
+import {SharingService} from "../sharing-service";
+
+export interface IServiceService extends IComponentService {
+ getDistributionsList(uuid:string):ng.IPromise<Array<Distribution>>;
+ getDistributionComponents(distributionId:string):ng.IPromise<Array<DistributionComponent>>;
+ markAsDeployed(serviceId:string, distributionId:string):ng.IPromise<any>;
+ updateGroupInstanceProperties(serviceId:string, resourceInstanceId:string, groupInstanceId:string, groupInstanceProperties:Array<PropertyModel>):ng.IPromise<Array<PropertyModel>>;
+}
+
+export class ServiceService extends ComponentService implements IServiceService {
+
+ static '$inject' = [
+ 'Restangular',
+ 'sdcConfig',
+ 'Sdc.Services.SharingService',
+ '$q',
+ '$base64'
+ ];
+
+ public distribution:string = "distribution";
+
+ constructor(protected restangular:restangular.IElement,
+ protected sdcConfig:IAppConfigurtaion,
+ protected sharingService:SharingService,
+ protected $q:ng.IQService,
+ protected $base64:any) {
+ super(restangular, sdcConfig, sharingService, $q, $base64);
+
+ this.restangular = restangular.one("services");
+ }
+
+ getDistributionsList = (uuid:string):ng.IPromise<Array<Distribution>> => {
+ let defer = this.$q.defer<Array<Distribution>>();
+ this.restangular.one(uuid).one("distribution").get().then((distributions:any) => {
+ defer.resolve(<Array<Distribution>> distributions.distributionStatusOfServiceList);
+ }, (err)=> {
+ defer.reject(err);
+ });
+ return defer.promise;
+ };
+
+ getDistributionComponents = (distributionId:string):ng.IPromise<Array<DistributionComponent>> => {
+ let defer = this.$q.defer<Array<DistributionComponent>>();
+ this.restangular.one("distribution").one(distributionId).get().then((distributions:any) => {
+ defer.resolve(<Array<DistributionComponent>> distributions.distributionStatusList);
+ }, (err)=> {
+ defer.reject(err);
+ });
+ return defer.promise;
+ };
+
+ markAsDeployed = (serviceId:string, distributionId:string):ng.IPromise<any> => {
+ let defer = this.$q.defer<any>();
+ this.restangular.one(serviceId).one("distribution").one(distributionId).one("markDeployed").customPOST().then((result:any) => {
+ defer.resolve(result);
+ }, (err)=> {
+
+ defer.reject(err);
+ });
+ return defer.promise;
+ };
+
+ createComponentObject = (component:Component):Component => {
+ return new Service(this, this.$q, <Service>component);
+ };
+
+ updateGroupInstanceProperties = (serviceId:string, resourceInstanceId:string, groupInstanceId:string, groupInstanceProperties:Array<PropertyModel>):ng.IPromise<Array<PropertyModel>> => {
+ let defer = this.$q.defer<Array<PropertyModel>>();
+ this.restangular.one(serviceId).one("resourceInstance").one(resourceInstanceId).one('groupInstance').one(groupInstanceId).customPUT(JSON.stringify(groupInstanceProperties)).then((updatedProperties:any) => {
+ let propertiesArray:Array<PropertyModel> = new Array<PropertyModel>();
+ _.forEach(updatedProperties, (propertyObj:PropertyModel) => {
+ propertiesArray.push(new PropertyModel(propertyObj));
+ });
+ defer.resolve(propertiesArray);
+ }, (err)=> {
+ defer.reject(err);
+ });
+ return defer.promise;
+ };
+}