aboutsummaryrefslogtreecommitdiffstats
path: root/old/moon_gui/static/app/services/moon/policy/policy.service.js
blob: 5ad31421a85796bbec54d617e7003bef420de4fd (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
/**
 * Service providing access to the tenants
 * @author arnaud marhin<arnaud.marhin@orange.com>
 */

(function() {

    'use strict';

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

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

    function policyService($resource, REST_URI, utilService, $q) {

        return {

            data: {

                policy: $resource(REST_URI.POLICIES + ':policy_id', {}, {
                    query: {method: 'GET'},
                    create: { method: 'POST' },
                    update: { method: 'PATCH' },
                    remove: { method: 'DELETE' }
                })

            },

            findAll: function () {

                return this.data.policy.query().$promise.then(function (data) {

                    return utilService.transform(data, 'policies');

                });

            },

            findAllWithCallback: function (callback) {

                return this.data.policy.query().$promise.then(function (data) {

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

                });

            },

            findOneReturningPromise: function(policyId){

                return this.data.policy.get({policy_id: policyId}).$promise;

            },

            findSomeWithCallback: function(policyListId, callback){

                var _self = this;

                if(policyListId.length === 0){
                    callback([]);
                }

                var promises = _(policyListId).map( function(policyId) {

                    return _self.findOneReturningPromise(policyId);

                });

                $q.all(promises).then( function(result) {

                    callback( _(result).map( function(resource) {

                        return utilService.transformOne(resource, 'policies');

                    }));

                });

            },

            findOne: function (policyId) {

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

                    return utilService.transformOne(data, 'policies');

                });

            },

            update: function (policy, callbackSuccess, callbackError) {

                this.data.policy.update({policy_id: policy.id}, policy, callbackSuccess, callbackError);

            },

            delete: function (policy, callbackSuccess, callbackError ) {

                this.data.policy.remove({policy_id: policy.id}, policy, callbackSuccess, callbackError);

            }

        }
    }

})();