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