aboutsummaryrefslogtreecommitdiffstats
path: root/moon_gui/static/app/services/moon/policy/parameters/assignements.service.js
blob: ca138b4576459132dcc3aac67bbb3f88061da389 (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
/**
 * @author Samy Abdallah
 */

(function() {

    'use strict';

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

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

    function assignmentsService($resource, REST_URI, utilService) {

        var data =  {

            subject: {

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

            },


            object: {

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

            },

            action: {

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

            }

        };

        return {

            subject : {

                delete: function (policyId, perimeterId, categoryId, dataId, callbackSuccess, callbackError ) {

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

                },

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

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

                },

                findAllFromPolicyWithCallback: function(policyId, callback){

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

                       callback(utilService.transform(data, 'subject_assignments'));

                    });

                }
            },

            object : {


                delete: function (policyId, perimeterId, categoryId, dataId, callbackSuccess, callbackError ) {

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

                },

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

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

                },

                findAllFromPolicyWithCallback: function(policyId, callback){

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

                        callback(utilService.transform(data, 'object_assignments'));

                    });

                }
            },

            action : {

                delete: function (policyId, perimeterId, categoryId, dataId, callbackSuccess, callbackError ) {

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

                },

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

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

                },

                findAllFromPolicyWithCallback: function(policyId, callback){

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

                        callback(utilService.transform(data, 'action_assignments'));

                    });

                }
            }

        };

    }
})();