Tenant, EPG, Contract initial commit
[groupbasedpolicy.git] / groupbasedpolicy-ui / module / src / main / resources / gbp / tenant / tenant.service.js
1 define([], function () {
2     'use strict';
3
4     angular.module('app.gbp').service('TenantService', TenantService);
5
6     TenantService.$inject = ['Restangular'];
7
8     function TenantService(Restangular) {
9         /* methods */
10         this.createObject = createObject;
11
12
13         /**
14          * Tenant constructor
15          * @constructor
16          */
17         function Tenant() {
18             /* properties */
19             this.data = {};
20             /* methods */
21             this.setData = setData;
22             this.get = get;
23
24             /* Implementation */
25             /**
26              * fills Tenant object with data
27              * @param data
28              */
29             function setData(data) {
30                 this.data.id = data.id;
31                 this.data.name = data.name;
32                 this.data.description = data.description;
33
34                 // TODO: use objects
35                 this.data['forwarding-context'] = data['forwarding-context'];
36                 this.data.policy = data.policy;
37             }
38
39             /**
40              * gets one Tenant object from Restconf
41              * @param id
42              * @returns {*}
43              */
44             function get(id) {
45                 var self = this;
46
47                 var restObj = Restangular.one('restconf').one('config').one('policy:tenants').one('tenant')
48                     .one(this.data.id || id);
49
50                 return restObj.get().then(function (data) {
51                     self.setData(data.tenant[0]);
52                 });
53             }
54         }
55
56         /**
57          * creates Tenant object and fills it with data if available
58          * @param data
59          * @returns {Tenant}
60          */
61         function createObject(data) {
62             var obj = new Tenant();
63
64             if (data) {
65                 obj.setData(data);
66             }
67
68             return obj;
69         }
70     }
71
72     return TenantService;
73 });