nexus site path corrected
[portal.git] / ecomp-portal-FE / client / app / services / functionalMenu / functionalMenu.service.js
1 /*-
2  * ================================================================================
3  * eCOMP Portal
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ================================================================================
19  */
20
21 'use strict';
22
23 (function () {
24     class FunctionalMenuService {
25         constructor($q, $log, $http, conf,uuid) {
26             this.$q = $q;
27             this.$log = $log;
28             this.$http = $http;
29             this.conf = conf;
30             this.uuid = uuid;
31         }
32
33
34         getManagedRolesMenu( appId )
35         {
36             let deferred = this.$q.defer();
37             this.$log.info('FunctionalMenuService::getManagedRolesMenu');
38             let url = this.conf.api.appRoles.replace(':appId', appId);
39             this.$log.info("FunctionalMenuService::getManagedRolesMenu url: "+url);
40
41             this.$http({
42                 method: "GET",
43                 url: url,
44                 cache: false,
45                 headers: {
46                     'X-ECOMP-RequestID':this.uuid.generate()
47                 }
48             }).then(res => {
49                 if (Object.keys(res.data).length == 0) {
50                     deferred.reject("functionalMenu.service::getManagedRolesMenu Failed");
51                 } else {
52                     this.$log.info('functionalMenu.service::getManagedRolesMenu succeeded: ');
53                     deferred.resolve(res.data);
54                 }
55             })
56             .catch(status => {
57                 deferred.reject(status);
58             });
59             return deferred.promise;
60         }
61
62         getAvailableApplications()
63         {
64             let deferred = this.$q.defer();
65             this.$log.info('FunctionalMenuService::getManagedRolesMenu:getAvailableApplications');
66
67             this.$http({
68                 method: "GET",
69 //                url: this.conf.api.availableApps,
70                 url: this.conf.api.allAvailableApps,
71                 cache: false,
72                 headers: {
73                     'X-ECOMP-RequestID':this.uuid.generate()
74                 }
75             }).then(res => {
76                 if (Object.keys(res.data).length == 0) {
77                     deferred.reject("FunctionalMenuService::getManagedRolesMenu:getAvailableApplications Failed");
78                 } else {
79                     this.$log.info('FunctionalMenuService::getManagedRolesMenu:getAvailableApplications succeeded: ');
80                     deferred.resolve(res.data);
81                 }
82             })
83             .catch(status => {
84                 deferred.reject(status);
85             });
86             return deferred.promise;
87         }
88         getMenuDetails( menuId )
89         {
90             let deferred = this.$q.defer();
91             this.$log.info('FunctionalMenuService::getMenuDetails:getMenuDetails');
92             let url = this.conf.api.functionalMenuItemDetails.replace(':menuId',menuId);
93             this.$log.info("FunctionalMenuService::getMenuDetails url: "+url);
94
95            this.$http({
96                 method: "GET",
97                 url: url,
98                 cache: false,
99                 headers: {
100                     'X-ECOMP-RequestID':this.uuid.generate()
101                 }
102             }).then(res => {
103                 if (Object.keys(res.data).length == 0) {
104                     deferred.reject("FunctionalMenuService::getMenuDetails:getMenuDetails Failed");
105                 } else {
106                     this.$log.info('FunctionalMenuService::getMenuDetails:getMenuDetails succeeded: ');
107                     deferred.resolve(res.data);
108                 }
109             })
110             .catch(status => {
111                 deferred.reject(status);
112             });
113             return deferred.promise;
114         }
115
116
117         getManagedFunctionalMenu() {
118             let deferred = this.$q.defer();
119             this.$log.info('FunctionalMenuService::getMenuDetails:getManagedFunctionalMenu');
120
121             this.$http({
122                 method: "GET",
123                 url: this.conf.api.functionalMenuForEditing,
124                 cache: false,
125                 headers: {
126                     'X-ECOMP-RequestID':this.uuid.generate()
127                 }
128             }).then(res => {
129                 if (Object.keys(res.data).length == 0) {
130                     deferred.reject("FunctionalMenuService::getManagedFunctionalMenu Failed");
131                 } else {
132                     this.$log.info('FunctionalMenuService::getManagedFunctionalMenu succeeded: ');
133                     deferred.resolve(res.data);
134                 }
135             })
136             .catch(status => {
137                 deferred.reject(status);
138             });
139             return deferred.promise;
140         }
141
142         regenerateFunctionalMenuAncestors() {
143             let deferred = this.$q.defer();
144             this.$log.info('FunctionalMenuService::regenerateFunctionalMenuAncestors');
145
146             this.$http({
147                 method: "GET",
148                 url: this.conf.api.regenerateFunctionalMenuAncestors,
149                 cache: false,
150                 headers: {
151                     'X-ECOMP-RequestID':this.uuid.generate()
152                 }
153             }).then(res => {
154                 if (Object.keys(res.data).length == 0) {
155                     deferred.reject("FunctionalMenuService::regenerateFunctionalMenuAncestors Failed");
156                 } else {
157                     this.$log.info('FunctionalMenuService::regenerateFunctionalMenuAncestors succeeded: ');
158                     deferred.resolve(res.data);
159                 }
160             })
161             .catch(status => {
162                 deferred.reject(status);
163             });
164             return deferred.promise;
165         }
166
167         saveEditedMenuItem(menuData) {
168             let deferred = this.$q.defer();
169             this.$log.info('FunctionalMenuService::saveEditedMenuItem: ' + menuData);
170         
171             let url = this.conf.api.functionalMenuItem;
172             this.$http({
173                 method: "PUT",
174                 url: url,
175                 cache: false,
176                 data: menuData,
177                 headers: {
178                     'X-ECOMP-RequestID':this.uuid.generate()
179                 }
180             }).then(res => {
181                 if (Object.keys(res.data).length == 0) {
182                     deferred.reject("FunctionalMenuService::saveEditedMenuItem Failed");
183                 } else {
184                     this.$log.info('FunctionalMenuService::saveEditedMenuItem succeeded: ');
185                     deferred.resolve(res.data);
186                 }
187             })
188             .catch(errRes => {
189                 deferred.reject(errRes);
190             });
191             return deferred.promise;
192         }
193         
194         saveMenuItem(menuData) {
195             let deferred = this.$q.defer();
196             this.$log.info('FunctionalMenuService::saveMenuItem: ' + JSON.stringify(menuData));
197
198             let url = this.conf.api.functionalMenuItem;
199             this.$http({
200                 method: "POST",
201                 url: url,
202                 cache: false,
203                 headers: {
204                     'X-ECOMP-RequestID':this.uuid.generate()
205                 },
206                 data: menuData
207             }).then(res => {
208                 if (Object.keys(res.data).length == 0) {
209                     deferred.reject("FunctionalMenuService::saveMenuItem:  Failed");
210                 } else {
211                     this.$log.info('FunctionalMenuService::saveMenuItem:  succeeded: ');
212                     deferred.resolve(res.data);
213                 }
214             })
215             .catch(errRes => {
216                 deferred.reject(errRes);
217             });
218             return deferred.promise;
219         }
220
221
222         deleteMenuItem(menuId) {
223             let deferred = this.$q.defer();
224             let url = this.conf.api.functionalMenuItem + '/' + menuId;
225
226             this.$log.info('FunctionalMenuService::deleteMenuItem: ' +menuId);
227
228             this.$http({
229                 method: "DELETE",
230                 url: url,
231                 cache: false,
232                 data:'',
233                 headers: {
234                     'X-ECOMP-RequestID':this.uuid.generate()
235                 }
236             }).then(res => {
237                 if (Object.keys(res.data).length == 0) {
238                     deferred.reject("FunctionalMenuService::deleteMenuItem Failed");
239                 } else {
240                     this.$log.info('FunctionalMenuService::deleteMenuItem succeeded: ');
241                     deferred.resolve(res.data);
242                 }
243             })
244             .catch(errRes => {
245                 deferred.reject(errRes);
246             });
247             return deferred.promise;
248         }
249
250 }
251     FunctionalMenuService.$inject = ['$q', '$log', '$http', 'conf','uuid4'];
252     angular.module('ecompApp').service('functionalMenuService', FunctionalMenuService)
253 })();