summaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/services/components/resource-service.ts
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-ui/src/app/services/components/resource-service.ts')
-rw-r--r--catalog-ui/src/app/services/components/resource-service.ts52
1 files changed, 52 insertions, 0 deletions
diff --git a/catalog-ui/src/app/services/components/resource-service.ts b/catalog-ui/src/app/services/components/resource-service.ts
new file mode 100644
index 0000000000..470f1e2061
--- /dev/null
+++ b/catalog-ui/src/app/services/components/resource-service.ts
@@ -0,0 +1,52 @@
+/**
+ * Created by obarda on 2/4/2016.
+ */
+'use strict';
+import {IComponentService, ComponentService} from "./component-service";
+import {PropertyModel, IAppConfigurtaion, Resource, Component} from "../../models";
+import {SharingService} from "../sharing-service";
+
+export interface IResourceService extends IComponentService {
+ updateResourceGroupProperties(uniqueId:string, groupId:string, properties:Array<PropertyModel>):ng.IPromise<Array<PropertyModel>>
+}
+
+export class ResourceService extends ComponentService implements IResourceService {
+
+ static '$inject' = [
+ 'Restangular',
+ 'sdcConfig',
+ 'Sdc.Services.SharingService',
+ '$q',
+ '$base64'
+ ];
+
+ 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("resources");
+ }
+
+ createComponentObject = (component:Component):Component => {
+ return new Resource(this, this.$q, <Resource>component);
+ };
+
+
+ updateResourceGroupProperties = (uniqueId:string, groupId:string, properties:Array<PropertyModel>):ng.IPromise<Array<PropertyModel>> => {
+ let defer = this.$q.defer<Array<PropertyModel>>();
+ this.restangular.one(uniqueId).one("groups").one(groupId).one('properties').customPUT(JSON.stringify(properties)).then((updatesProperties:any) => {
+ let propertiesArray:Array<PropertyModel> = new Array<PropertyModel>();
+ _.forEach(updatesProperties, (propertyObj:PropertyModel) => {
+ propertiesArray.push(new PropertyModel(propertyObj));
+ });
+ defer.resolve(propertiesArray);
+ }, (err)=> {
+ defer.reject(err);
+ });
+ return defer.promise;
+ };
+}