blob: 432c25a110db892571a10ed92f75ae7c602e382e [file] [log] [blame]
Matteo Scandolo2c2c8af2016-06-03 15:36:02 -07001(function () {
Matteo Scandolof25db3b2016-06-29 17:41:27 -07002
Matteo Scandolo2c2c8af2016-06-03 15:36:02 -07003 angular.module('mCord')
Matteo Scandolof25db3b2016-06-29 17:41:27 -07004 .service('Profile', function($injector, $resource, $q, $http, baseUrl, Helpers){
Matteo Scandolo3b82a592016-06-21 12:10:35 +02005 const r = $resource(`${baseUrl}onos/progran/profile/:id`, {id: '@Name'}, {
Matteo Scandolo3b3eee82016-06-23 16:38:04 -07006 save: {
7 method: 'PUT'
8 },
9 $save: {
10 method: 'PUT'
11 },
Matteo Scandolo3b82a592016-06-21 12:10:35 +020012 query: {
13 array: false,
14 interceptor: {
15 response: function(res){
16 const Profile = $injector.get('Profile');
Matteo Scandolof25db3b2016-06-29 17:41:27 -070017 return res.data.ProfileArray.map(p => new Profile(p)).map(p => {
18 p.jsStart = Helpers.stringToTime(p.Start);
19 p.jsEnd = Helpers.stringToTime(p.End);
20 return p;
21 });
Matteo Scandolo3b82a592016-06-21 12:10:35 +020022 }
23 }
24 },
25 get: {
26 array: false,
27 interceptor: {
28 response: function(res){
29 const Profile = $injector.get('Profile');
Matteo Scandolof25db3b2016-06-29 17:41:27 -070030 res.data.ProfileArray[0].jsStart = Helpers.stringToTime(res.data.ProfileArray[0].Start);
31 res.data.ProfileArray[0].jsEnd = Helpers.stringToTime(res.data.ProfileArray[0].End);
Matteo Scandolo3b82a592016-06-21 12:10:35 +020032 return new Profile(res.data.ProfileArray[0]);
33 }
34 }
35 }
36 });
Matteo Scandoloe23060c2016-06-14 14:50:23 -070037
Matteo Scandolo3b3eee82016-06-23 16:38:04 -070038 // Override the default save method,
39 // Name is the key, so the $resource will try to update
40 r.save = function(data){
41 const d = $q.defer();
42 $http.post(`${baseUrl}onos/progran/profile/`, data)
43 .then(res => {
44 d.resolve(res.data);
45 })
46 .catch(err => {
47 d.reject(err)
48 });
49 return {$promise: d.promise};
50 };
51
Matteo Scandolof25db3b2016-06-29 17:41:27 -070052 r.prototype.$save = function(){
53 const d = $q.defer();
54 $http.put(`${baseUrl}onos/progran/profile/${this.Name}`, this)
55 .then(res => {
56 d.resolve(res.data);
57 })
58 .catch(err => {
59 d.reject(err)
60 });
61 return {$promise: d.promise};
62 };
63
Matteo Scandoloe23060c2016-06-14 14:50:23 -070064 r.prototype.getImsis = function(){
65 const d = $q.defer();
66
Matteo Scandolo3b82a592016-06-21 12:10:35 +020067 $http.get(`${baseUrl}onos/progran/profile/${this.Name}/imsi`)
Matteo Scandoloe23060c2016-06-14 14:50:23 -070068 .then(res => {
69 d.resolve(res.data);
70 })
71 .catch(err => {
72 d.reject(err)
73 });
74
75 return d.promise;
76 };
77
Matteo Scandolo3b3eee82016-06-23 16:38:04 -070078 // this is under profile
79 r.prototype.addImsi = function(data){
80 const d = $q.defer();
81 let body = {'IMSIRuleArray': [data.IMSI]};
82 $http.post(`${baseUrl}onos/progran/profile/${this.Name}/imsi`, body)
83 .then(res => {
84 d.resolve(res.data);
85 })
86 .catch(err => {
87 d.reject(err)
88 });
89
90 return d.promise;
91 };
92
Matteo Scandoloe23060c2016-06-14 14:50:23 -070093 r.prototype.deleteImsis = function(){
94 const d = $q.defer();
95
Matteo Scandolo3b82a592016-06-21 12:10:35 +020096 $http.delete(`${baseUrl}onos/progran/profile/${this.Name}/imsi`)
Matteo Scandoloe23060c2016-06-14 14:50:23 -070097 .then(res => {
98 d.resolve(res.data);
99 })
100 .catch(err => {
101 d.reject(err)
102 });
103
104 return d.promise;
105 };
106
107 r.prototype.deleteImsi = function(id){
108 const d = $q.defer();
109
Matteo Scandolo3b82a592016-06-21 12:10:35 +0200110 $http.delete(`${baseUrl}onos/progran/profile/${this.Name}/imsi/${id}`)
Matteo Scandoloe23060c2016-06-14 14:50:23 -0700111 .then(res => {
112 d.resolve(res.data);
113 })
114 .catch(err => {
115 d.reject(err)
116 });
117
118 return d.promise;
119 };
120
121 r.prototype.getEnodes = function(){
122 const d = $q.defer();
123
Matteo Scandolo3b82a592016-06-21 12:10:35 +0200124 $http.get(`${baseUrl}onos/progran/profile/${this.Name}/enodeb`)
Matteo Scandoloe23060c2016-06-14 14:50:23 -0700125 .then(res => {
126 d.resolve(res.data);
127 })
128 .catch(err => {
129 d.reject(err)
130 });
131
132 return d.promise;
133 };
134
135 r.prototype.deleteEnodes = function(){
136 const d = $q.defer();
137
Matteo Scandolo3b82a592016-06-21 12:10:35 +0200138 $http.delete(`${baseUrl}onos/progran/profile/${this.Name}/enodeb`)
Matteo Scandoloe23060c2016-06-14 14:50:23 -0700139 .then(res => {
140 d.resolve(res.data);
141 })
142 .catch(err => {
143 d.reject(err)
144 });
145
146 return d.promise;
147 };
148
149 r.prototype.deleteEnode = function(id){
150 const d = $q.defer();
151
Matteo Scandolo3b3eee82016-06-23 16:38:04 -0700152 $http.delete(`${baseUrl}onos/progran/enodeb/${id}/profile/${this.Name}`)
Matteo Scandoloe23060c2016-06-14 14:50:23 -0700153 .then(res => {
154 d.resolve(res.data);
155 })
156 .catch(err => {
157 d.reject(err)
158 });
159
160 return d.promise;
161 };
162
163 return r;
Matteo Scandolo2c2c8af2016-06-03 15:36:02 -0700164 })
165})();