aboutsummaryrefslogtreecommitdiffstats
path: root/old/moon_gui/static/app/services/moon/policy/parameters/data.service.js
blob: 1bbd3b245163d780cdc26a8f9ddc7b995c463bb4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
/**
 * @author Samy Abdallah
 */

(function() {

    'use strict';

    angular
        .module('moon')
        .factory('dataService', dataService);

    dataService.$inject = ['$resource', 'REST_URI', 'utilService'];

    function dataService($resource, REST_URI, utilService) {

        var data =  {

            subject: {

                policy: $resource(REST_URI.POLICIES + ':policy_id/subject_data/:subject_id/:category_id/:data_id', {}, {
                    get: {method: 'GET'},
                    create: {method: 'POST'},
                    remove: {method: 'DELETE'}
                })

            },

            object: {

                policy: $resource(REST_URI.POLICIES + ':policy_id/object_data/:object_id/:category_id/:data_id', {}, {
                    get: {method: 'GET', isArray: false},
                    create: {method: 'POST'},
                    remove: {method: 'DELETE'}
                })

            },

            action: {

                policy: $resource(REST_URI.POLICIES + ':policy_id/action_data/:action_id/:category_id/:data_id', {}, {
                    get: {method: 'GET', isArray: false},
                    create: {method: 'POST'},
                    remove: {method: 'DELETE'}
                })

            }

        };

        return {

            subject : {

                findAllFromPolicyWithCallback: function(policyId, callback){

                    data.subject.policy.get({policy_id: policyId}).$promise.then(function(data) {

                        callback(utilService.transform(data['subject_data'][0], 'data'));

                    });

                },

                findAllFromCategoriesWithCallback: function(policyId, categoryId, callback){

                    data.subject.policy.get({policy_id: policyId, category_id: categoryId}).$promise.then(function(data) {

                        if(data['subject_data'][0]) {

                            callback(utilService.transform(data['subject_data'][0], 'data'));

                        }else{

                            callback([])

                        }

                    });

                },

                delete: function (subject, policyId, categoryId, callbackSuccess, callbackError ) {

                    data.subject.policy.remove({policy_id: policyId, category_id: categoryId, data_id: subject.id}, subject, callbackSuccess, callbackError);

                },

                add: function (subject, policyId, categoryId, callbackSuccess, callbackError ) {

                    data.subject.policy.create({policy_id: policyId, category_id: categoryId}, subject, callbackSuccess, callbackError);

                },

                data: {

                    findOne: function(policyId, subjectId, dataId, callback){

                        data.subject.policy.get({policy_id: policyId, subject_id: subjectId, data_id : dataId}).$promise.then(function(data) {

                            if(data['subject_data'][0]){

                                callback(utilService.transformOne(data['subject_data'][0], 'data'));

                            }else{

                                callback({ });

                            }

                        });

                    }
                }
            },

            object : {

                findAllFromPolicyWithCallback: function(policyId, callback){

                    data.object.policy.get({policy_id: policyId}).$promise.then(function(data) {

                        callback(utilService.transform(data['object_data'][0], 'data'));

                    });

                },

                findAllFromCategoriesWithCallback: function(policyId, categoryId, callback){

                    data.object.policy.get({policy_id: policyId, category_id: categoryId}).$promise.then(function(data) {

                        if(data['object_data'][0]) {

                            callback(utilService.transform(data['object_data'][0], 'data'));

                        }else{

                            callback([])

                        }

                    });

                },

                delete: function (object, policyId, categoryId, callbackSuccess, callbackError ) {

                    data.object.policy.remove({policy_id: policyId, category_id: categoryId, data_id: object.id}, object, callbackSuccess, callbackError);

                },

                add:function (object, policyId, categoryId, callbackSuccess, callbackError ) {

                    data.object.policy.create({policy_id: policyId, category_id: categoryId}, object, callbackSuccess, callbackError);

                },

                data: {

                    findOne: function(policyId, objectId, dataId, callback){

                        data.object.policy.get({policy_id: policyId, object_id: objectId, data_id : dataId}).$promise.then(function(data) {

                            if(data['object_data'][0]){

                                callback(utilService.transformOne(data['object_data'][0], 'data'));

                            }else{

                                callback({ });

                            }

                        });

                    }
                }
            },

            action : {

                findAllFromPolicyWithCallback: function(policyId, callback){

                    data.action.policy.get({policy_id: policyId}).$promise.then(function(data) {

                        callback(utilService.transform(data['action_data'][0], 'data'));

                    });

                },

                findAllFromCategoriesWithCallback: function(policyId, categoryId, callback){

                    data.action.policy.get({policy_id: policyId, category_id: categoryId}).$promise.then(function(data) {

                        if(data['action_data'][0]) {

                            callback(utilService.transform(data['action_data'][0], 'data'));

                        }else{

                            callback([])

                        }

                    });

                },

                delete: function (action, policyId, categoryId, callbackSuccess, callbackError ) {

                    data.action.policy.remove({policy_id: policyId, category_id: categoryId, data_id: action.id}, action, callbackSuccess, callbackError);

                },

                add:function (action, policyId, categoryId, callbackSuccess, callbackError ) {

                    data.action.policy.create({policy_id: policyId, category_id: categoryId}, action, callbackSuccess, callbackError);

                },


                data: {

                    findOne: function(policyId, actionId, dataId, callback){

                        data.action.policy.get({policy_id: policyId, action_id: actionId, data_id : dataId}).$promise.then(function(data) {

                            if(data['action_data'][0]){

                                callback(utilService.transformOne(data['action_data'][0], 'data'));

                            }else{

                                callback({ });

                            }

                        });

                    }
                }
            }

        };

    }
})();