Global Read only role, Support VID specific Roles
[vid.git] / vid-app-common / src / main / webapp / app / vid / scripts / services / aaiService.js
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * VID\r
4  * ================================================================================\r
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.\r
6  * ================================================================================\r
7  * Licensed under the Apache License, Version 2.0 (the "License");\r
8  * you may not use this file except in compliance with the License.\r
9  * You may obtain a copy of the License at\r
10  * \r
11  *      http://www.apache.org/licenses/LICENSE-2.0\r
12  * \r
13  * Unless required by applicable law or agreed to in writing, software\r
14  * distributed under the License is distributed on an "AS IS" BASIS,\r
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
16  * See the License for the specific language governing permissions and\r
17  * limitations under the License.\r
18  * ============LICENSE_END=========================================================\r
19  */\r
20 \r
21 "use strict";\r
22 \r
23 var AaiService = function ($http, $log, PropertyService, UtilityService, COMPONENT, FIELD) {\r
24     return {\r
25         getSubscriberName: function (globalCustomerId,\r
26                                      successCallbackFunction) {\r
27             $log\r
28                 .debug("AaiService:getSubscriberName: globalCustomerId: "\r
29                     + globalCustomerId);\r
30             $http.get(\r
31                 COMPONENT.AAI_SUB_DETAILS_PATH\r
32                 + globalCustomerId + COMPONENT.ASSIGN + Math.random(),\r
33                 {\r
34                     timeout: PropertyService\r
35                         .getServerResponseTimeoutMsec()\r
36                 }).then(function (response) {\r
37                 var subName = "";\r
38                 if (response.data) {\r
39                     subName = response.data[FIELD.ID.SUBNAME];\r
40                 }\r
41                 successCallbackFunction(subName);\r
42             })["catch"]\r
43             (UtilityService.runHttpErrorHandler);\r
44         },\r
45 \r
46 \r
47         runNamedQuery: function (namedQueryId, globalCustomerId, serviceType, serviceInstanceId, successCallback, errorCallback) {\r
48 \r
49             var url = COMPONENT.AAI_SUB_VIEWEDIT_PATH +\r
50                 COMPONENT.FORWARD_SLASH + encodeURIComponent(namedQueryId) +\r
51                 COMPONENT.FORWARD_SLASH + encodeURIComponent(globalCustomerId) +\r
52                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceType) +\r
53                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceInstanceId);\r
54             $http.get(url, {}, {\r
55                 timeout: PropertyService.getServerResponseTimeoutMsec()\r
56             }).then(function (response) {\r
57                 if (response.data != null) {\r
58                     successCallback(response);\r
59                 } else {\r
60                     errorCallback(response);\r
61                 }\r
62             }, function (response) {\r
63                 errorCallback(response);\r
64             });\r
65         },\r
66 \r
67 \r
68         getSubDetails: function (selectedSubscriber, selectedServiceInstance, successCallback, errorCallback) {\r
69             var subscriber;\r
70             var displayData;\r
71             $http.get(COMPONENT.AAI_SUB_DETAILS_PATH + selectedSubscriber, {}, {\r
72                 timeout: PropertyService.getServerResponseTimeoutMsec()\r
73             }).then(function (response) {\r
74                 displayData = [];\r
75                 subscriber = response.data;\r
76                 var subscriberName = subscriber[FIELD.ID.SUBNAME];\r
77                 if (subscriber[FIELD.ID.SERVICE_SUBSCRIPTIONS] != null) {\r
78                     angular.forEach(subscriber[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION], function (serviceSubscription, key) {\r
79                         var serviceInstanceId = [];\r
80                         var serviceType = "";\r
81                         if (serviceSubscription[FIELD.ID.SERVICETYPE] != null) {\r
82                             serviceType = serviceSubscription[FIELD.ID.SERVICETYPE];\r
83                         } else {\r
84                             serviceType = FIELD.PROMPT.NO_SERVICE_SUB;\r
85                         }\r
86                         if (serviceSubscription[FIELD.ID.SERVICE_INSTANCES] != null) {\r
87                             angular.forEach(serviceSubscription[FIELD.ID.SERVICE_INSTANCES][FIELD.ID.SERVICE_INSTANCE], function (instValue, instKey) {\r
88                                 // put them together, i guess\r
89                                 var inst = {\r
90                                     "serviceInstanceId": instValue[FIELD.ID.SERVICE_INSTANCE_ID],\r
91                                     "aaiModelInvariantId": instValue[FIELD.ID.MODEL_INVAR_ID],\r
92                                     "aaiModelVersionId": instValue[FIELD.ID.MODEL_VERSION_ID],\r
93                                     "serviceInstanceName": instValue[FIELD.ID.SERVICE_INSTANCE_NAME]\r
94                                 };\r
95                                 if (selectedServiceInstance != null) {\r
96                                     if ((instValue[FIELD.ID.SERVICE_INSTANCE_ID] == selectedServiceInstance ) || (instValue[FIELD.ID.SERVICE_INSTANCE_NAME] == selectedServiceInstance)) {\r
97                                         serviceInstanceId.push(inst);\r
98                                     }\r
99                                 } else {\r
100                                     serviceInstanceId.push(inst);\r
101                                 }\r
102                             });\r
103                         } else {\r
104                             if (serviceInstanceId == []) {\r
105                                 serviceInstanceId = [FIELD.PROMPT.NO_SERVICE_INSTANCE];\r
106                             }\r
107                         }\r
108                         angular.forEach(serviceInstanceId, function (subVal, subKey) {\r
109                             displayData.push({\r
110                                 globalCustomerId: selectedSubscriber,\r
111                                 subscriberName: subscriberName,\r
112                                 serviceType: serviceType,\r
113                                 serviceInstanceId: subVal.serviceInstanceId,\r
114                                 aaiModelInvariantId: subVal.aaiModelInvariantId,\r
115                                 aaiModelVersionId: subVal.aaiModelVersionId,\r
116                                 serviceInstanceName: subVal.serviceInstanceName,\r
117                                 isPermitted: serviceSubscription[FIELD.ID.IS_PERMITTED]\r
118                             });\r
119                         });\r
120                     });\r
121                 } else {\r
122                     displayData.push({\r
123                         globalCustomerId: selectedSubscriber,\r
124                         subscriberName: selectedSubscriberName,\r
125                         serviceType: FIELD.PROMPT.NO_SERVICE_SUB,\r
126                         serviceInstanceId: FIELD.PROMPT.NO_SERVICE_INSTANCE\r
127                     });\r
128                 }\r
129                 successCallback(displayData, subscriberName);\r
130             }, function (response) {\r
131                 errorCallback(response);\r
132             });\r
133         },\r
134         getSubList: function (successCallback, errorCallback) {\r
135 \r
136             $http.get(FIELD.ID.AAI_GET_FULL_SUBSCRIBERS, {}, {\r
137                 timeout: PropertyService.getServerResponseTimeoutMsec()\r
138             }).then(function (response) {\r
139                 var customerList = [];\r
140                 if (response.data.customer != null) {\r
141                     angular.forEach(response.data.customer, function (subVal, subKey) {\r
142                         var cust = {\r
143                             "globalCustomerId": subVal[FIELD.ID.GLOBAL_CUSTOMER_ID],\r
144                             "subscriberName": subVal[FIELD.ID.SUBNAME],\r
145                             "isPermitted": subVal[FIELD.ID.IS_PERMITTED],\r
146                         };\r
147                         customerList.push(cust);\r
148                     });\r
149                     successCallback(customerList);\r
150                 } else {\r
151                     errorCallback(response);\r
152                 }\r
153             }, function (response) {\r
154                 errorCallback(response);\r
155             });\r
156         },\r
157 \r
158         getServices2: function (successCallback, errorCallback) {\r
159 \r
160             $http.get(FIELD.ID.AAI_GET_SERVICES, {}, {\r
161                 timeout: PropertyService.getServerResponseTimeoutMsec()\r
162             }).then(function (response) {\r
163                 var customerList = [];\r
164                 if (response.data != null) {\r
165                     var serviceIdList = [];\r
166                     angular.forEach(response.data, function (value, key) {\r
167                         angular.forEach(value, function (subVal, key) {\r
168                             var newVal = {\r
169                                 "id": subVal[FIELD.ID.SERVICE_ID],\r
170                                 "description": subVal[FIELD.ID.SERVICE_DESCRIPTION],\r
171                                 "isPermitted" : subVal[FIELD.ID.IS_PERMITTED]\r
172 \r
173                             };\r
174                             serviceIdList.push(newVal);\r
175                         });\r
176                     });\r
177                     successCallback(serviceIdList);\r
178                 } else {\r
179                     errorCallback(response);\r
180                 }\r
181             }, function (response) {\r
182                 errorCallback(response);\r
183             });\r
184         },\r
185 \r
186         getSubscriptionServiceTypeList: function (globalCustomerId,\r
187                                                   successCallbackFunction) {\r
188             $log\r
189                 .debug("AaiService:getSubscriptionServiceTypeList: globalCustomerId: "\r
190                     + globalCustomerId);\r
191             if (UtilityService.hasContents(globalCustomerId)) {\r
192                 $http.get(\r
193                     COMPONENT.AAI_SUB_DETAILS_PATH\r
194                     + globalCustomerId + COMPONENT.ASSIGN + Math.random(),\r
195                     {\r
196                         timeout: PropertyService\r
197                             .getServerResponseTimeoutMsec()\r
198                     }).then(function (response) {\r
199                     if (response.data && response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS]) {\r
200                         var serviceTypes = [];\r
201                         var serviceSubscriptions = response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION];\r
202 \r
203                         for (var i = 0; i < serviceSubscriptions.length; i++) {\r
204                             serviceTypes.push({\r
205                                 "name": serviceSubscriptions[i][FIELD.ID.SERVICETYPE],\r
206                                 "isPermitted": serviceSubscriptions[i][FIELD.ID.IS_PERMITTED],\r
207                                 "id": i\r
208                             });\r
209                         }\r
210                         successCallbackFunction(serviceTypes);\r
211                     } else {\r
212                         successCallbackFunction([]);\r
213                     }\r
214                 })["catch"]\r
215                 (UtilityService.runHttpErrorHandler);\r
216             }\r
217         },\r
218         getLcpCloudRegionTenantList: function (globalCustomerId, serviceType,\r
219                                                successCallbackFunction) {\r
220             $log\r
221                 .debug("AaiService:getLcpCloudRegionTenantList: globalCustomerId: "\r
222                     + globalCustomerId);\r
223             var url = COMPONENT.AAI_GET_TENANTS\r
224                 + globalCustomerId + COMPONENT.FORWARD_SLASH + serviceType + COMPONENT.ASSIGN + Math.random();\r
225 \r
226             $http.get(url,\r
227                 {\r
228                     timeout: PropertyService\r
229                         .getServerResponseTimeoutMsec()\r
230                 }).then(function (response) {\r
231                 var lcpCloudRegionTenants = [];\r
232                 var aaiLcpCloudRegionTenants = response.data;\r
233 \r
234                 lcpCloudRegionTenants.push({\r
235                     "cloudRegionId": "",\r
236                     "tenantName": FIELD.PROMPT.REGION,\r
237                     "tenantId": ""\r
238                 });\r
239 \r
240                 for (var i = 0; i < aaiLcpCloudRegionTenants.length; i++) {\r
241                     lcpCloudRegionTenants.push({\r
242                         "cloudRegionId": aaiLcpCloudRegionTenants[i][COMPONENT.CLOUD_REGION_ID],\r
243                         "tenantName": aaiLcpCloudRegionTenants[i][COMPONENT.TENANT_NAME],\r
244                         "tenantId": aaiLcpCloudRegionTenants[i][COMPONENT.TENANT_ID],\r
245                         "isPermitted": aaiLcpCloudRegionTenants[i][COMPONENT.IS_PERMITTED]\r
246                     });\r
247                 }\r
248 \r
249                 successCallbackFunction(lcpCloudRegionTenants);\r
250             })["catch"]\r
251             (UtilityService.runHttpErrorHandler);\r
252         },\r
253         getSubscribers: function (successCallbackFunction) {\r
254             $log\r
255                 .debug("AaiService:getSubscribers");\r
256             var url = FIELD.ID.AAI_GET_SUBSCRIBERS + COMPONENT.ASSIGN + Math.random();\r
257 \r
258             $http.get(url,\r
259                 {\r
260                     timeout: PropertyService\r
261                         .getServerResponseTimeoutMsec()\r
262                 }).then(function (response) {\r
263                 if (response.data) {\r
264                     successCallbackFunction(response.data.customer);\r
265                 } else {\r
266                     successCallbackFunction([]);\r
267                 }\r
268             })["catch"]\r
269             (UtilityService.runHttpErrorHandler);\r
270         },\r
271         getProvOptionsFromSystemProp: function (successCallbackFunction) {\r
272             $log\r
273                 .debug("AaiService:getProvOptionsFromSystemProp");\r
274             var url = COMPONENT.GET_SYSTEM_PROP_VNF_PROV_STATUS_PATH;\r
275 \r
276             $http.get(url,\r
277                 {\r
278                     timeout: PropertyService\r
279                         .getServerResponseTimeoutMsec()\r
280                 }).then(function (response) {\r
281                 if (response.data) {\r
282                     successCallbackFunction(response);\r
283                 } else {\r
284                     successCallbackFunction([]);\r
285                 }\r
286             })["catch"]\r
287             (UtilityService.runHttpErrorHandler);\r
288         },\r
289         getLoggedInUserID: function (successCallbackFunction) {\r
290             $log\r
291                 .debug("AaiService:getLoggedInUserID");\r
292             var url = COMPONENT.GET_USER_ID;\r
293 \r
294             $http.get(url,\r
295                 {\r
296                     timeout: PropertyService\r
297                         .getServerResponseTimeoutMsec()\r
298                 }).then(function (response) {\r
299                 if (response.data) {\r
300                     successCallbackFunction(response);\r
301                 } else {\r
302                     successCallbackFunction([]);\r
303                 }\r
304             })["catch"]\r
305             (UtilityService.runHttpErrorHandler);\r
306         },\r
307         getServices: function (successCallbackFunction) {\r
308             $log\r
309                 .debug("AaiService:getServices");\r
310             var url = COMPONENT.AAI_GET_SERVICES + COMPONENT.ASSIGN + Math.random();\r
311 \r
312             $http.get(url,\r
313                 {\r
314                     timeout: PropertyService\r
315                         .getServerResponseTimeoutMsec()\r
316                 }).then(function (response) {\r
317                 if (response.data) {\r
318                     successCallbackFunction(response);\r
319                 } else {\r
320                     successCallbackFunction([]);\r
321                 }\r
322             })["catch"]\r
323             (UtilityService.runHttpErrorHandler);\r
324         },\r
325 \r
326         getAicZones: function (successCallbackFunction) {\r
327             $log\r
328                 .debug("getAicZones:getAicZones");\r
329             var url = COMPONENT.AAI_GET_AIC_ZONES + COMPONENT.ASSIGN + Math.random();\r
330 \r
331             $http.get(url,\r
332                 {\r
333                     timeout: PropertyService\r
334                         .getServerResponseTimeoutMsec()\r
335                 }).then(function (response) {\r
336                 if (response.data) {\r
337                     successCallbackFunction(response);\r
338                 } else {\r
339                     successCallbackFunction([]);\r
340                 }\r
341             })["catch"]\r
342             (UtilityService.runHttpErrorHandler);\r
343         },\r
344         getServiceModels: function (globalCustomerId, serviceType, successCallbackFunction) {\r
345             $log\r
346                 .debug("AaiService:getServices");\r
347             var url = COMPONENT.AAI_GET_SERVICES + COMPONENT.FORWARD_SLASH + globalCustomerId + COMPONENT.FORWARD_SLASH + serviceType + COMPONENT.ASSIGN + Math.random();\r
348 \r
349             $http.get(url,\r
350                 {\r
351                     timeout: PropertyService\r
352                         .getServerResponseTimeoutMsec()\r
353                 }).then(function (response) {\r
354                 if (response.data) {\r
355                     successCallbackFunction(response);\r
356                 } else {\r
357                     successCallbackFunction([]);\r
358                 }\r
359             })["catch"]\r
360             (UtilityService.runHttpErrorHandler);\r
361         },\r
362         getServiceModelsByServiceType: function (namedQueryId, globalCustomerId, serviceType, successCallbackFunction) {\r
363             $log\r
364                 .debug("AaiService:getServiceModelsByServiceType");\r
365             var url = COMPONENT.AAI_GET_SERVICES_BY_TYPE + COMPONENT.FORWARD_SLASH + namedQueryId + COMPONENT.FORWARD_SLASH + globalCustomerId + COMPONENT.FORWARD_SLASH + serviceType + COMPONENT.ASSIGN + Math.random();\r
366 \r
367             $http.get(url,\r
368                 {\r
369                     timeout: PropertyService\r
370                         .getServerResponseTimeoutMsec()\r
371                 }).then(function (response) {\r
372                 if (response.data) {\r
373                     successCallbackFunction(response);\r
374                 } else {\r
375                     successCallbackFunction([]);\r
376                 }\r
377             })["catch"]\r
378             (UtilityService.runHttpErrorHandler);\r
379         }\r
380     }\r
381 }\r
382 \r
383 appDS2.factory("AaiService", ["$http", "$log", "PropertyService",\r
384     "UtilityService", "COMPONENT", "FIELD", AaiService]);\r