VoLTE support
[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, $q) {\r
24 \r
25     function getServiceInstance(serviceInstanceIdentifier, findBy) {\r
26         serviceInstanceIdentifier.trim();\r
27 \r
28         return $http.get(COMPONENT.AAI_GET_SERVICE_INSTANCE_PATH + serviceInstanceIdentifier + "/" + findBy + "?r=" + Math.random(), {}, {\r
29             timeout: PropertyService.getServerResponseTimeoutMsec()\r
30         });\r
31     }\r
32 \r
33     function getPnfByName(pnfName) {\r
34         var deferred = $q.defer();\r
35         var url = COMPONENT.AAI_GET_PNF_BY_NAME+ encodeURIComponent(pnfName)  ;\r
36         var config = { timeout: PropertyService.getServerResponseTimeoutMsec() };\r
37 \r
38         $http.get(url, config)\r
39             .success(function (response) {\r
40                 deferred.resolve({data: response});\r
41             })\r
42             .error(function(data, status, headers, config) {\r
43                 deferred.reject({message: data, status: status});\r
44             });\r
45 \r
46         return deferred.promise;\r
47     };\r
48 \r
49 \r
50     function getGlobalCustomerIdFromServiceInstanceResponse(response) {\r
51         var globalCustomerId = "";\r
52         if (angular.isArray(response.data[FIELD.ID.RESULT_DATA])) {\r
53             var customerIndex = 5;\r
54             var customerIdIndex = 6;\r
55             var itemIndex = 0;\r
56 \r
57             var item = response.data[FIELD.ID.RESULT_DATA][itemIndex];\r
58             var url = item[FIELD.ID.RESOURCE_LINK];\r
59             var urlParts = url.split("/");\r
60             if (urlParts[customerIndex] === FIELD.ID.CUSTOMER) {\r
61                 globalCustomerId = urlParts[customerIdIndex];\r
62             }\r
63         }\r
64         return globalCustomerId;\r
65     }\r
66 \r
67     function searchServiceInstances(query) {\r
68         return $http.get( COMPONENT.SEARCH_SERVICE_INSTANCES  + query, {}, {\r
69             timeout : PropertyService.getServerResponseTimeoutMsec()\r
70         }).then(function (response) {\r
71             var displayData = response.data[FIELD.ID.SERVICE_INSTANCES];\r
72             if (!displayData.length) {\r
73                 displayData = [{\r
74                     globalCustomerId    : null,\r
75                     subscriberName      : null,\r
76                     serviceType                 : FIELD.PROMPT.NO_SERVICE_SUB,\r
77                     serviceInstanceId   : FIELD.PROMPT.NO_SERVICE_INSTANCE\r
78                 }];\r
79             }\r
80             return {displayData: displayData};\r
81         })\r
82     }\r
83 \r
84     function getJoinedQueryString(queries) {\r
85         return queries.filter(function (val) {return val;}).join("&");\r
86     }\r
87 \r
88     return {\r
89         getSubscriberName : function(globalCustomerId,\r
90                                      successCallbackFunction) {\r
91             $log\r
92                 .debug("AaiService:getSubscriberName: globalCustomerId: "\r
93                     + globalCustomerId);\r
94             $http.get(\r
95                 COMPONENT.AAI_SUB_DETAILS_PATH\r
96                 + globalCustomerId + COMPONENT.ASSIGN + Math.random(),\r
97                 {\r
98                     timeout : PropertyService\r
99                         .getServerResponseTimeoutMsec()\r
100                 }).then(function(response) {\r
101                 var result = {};\r
102                 if (response.data) {\r
103                     result.subscriberName = response.data[FIELD.ID.SUBNAME];\r
104                     result.serviceSubscriptions = response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS];\r
105                 }\r
106                 successCallbackFunction(result);\r
107             })["catch"]\r
108             (UtilityService.runHttpErrorHandler);\r
109         },\r
110 \r
111         runNamedQuery : function (namedQueryId, globalCustomerId, serviceType, serviceInstanceId, successCallback, errorCallback) {\r
112 \r
113             var url = COMPONENT.AAI_SUB_VIEWEDIT_PATH +\r
114                 COMPONENT.FORWARD_SLASH + encodeURIComponent(namedQueryId) +\r
115                 COMPONENT.FORWARD_SLASH + encodeURIComponent(globalCustomerId) +\r
116                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceType) +\r
117                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceInstanceId);\r
118             $http.get(url, {}, {\r
119 \r
120 \r
121                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
122             }).then(function(response) {\r
123                 if (response.data != null) {\r
124                     successCallback(response);\r
125                 } else {\r
126                     errorCallback(response);\r
127                 }\r
128             }, function(response) {\r
129                 errorCallback(response);\r
130             });\r
131         },\r
132 \r
133 \r
134         getVNFInformationByServiceTypeAndId : function (globalCustomerId, serviceType, serviceInstanceId, successCallback, errorCallback) {\r
135 \r
136             var url = COMPONENT.AAI_GET_VNF_INFO +\r
137                 COMPONENT.FORWARD_SLASH + encodeURIComponent(globalCustomerId) +\r
138                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceType) +\r
139                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceInstanceId);\r
140             $http.get(url, {}, {\r
141                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
142             }).then(function(response) {\r
143                 if (response.data != null) {\r
144                     successCallback(response);\r
145                 } else {\r
146                     errorCallback(response);\r
147                 }\r
148             }, function(response) {\r
149                 errorCallback(response);\r
150             });\r
151         },\r
152 \r
153         getPNFInformationByServiceTypeAndId : function (globalCustomerId, serviceType, serviceInstanceId, successCallback, errorCallback) {\r
154 \r
155             var url = COMPONENT.AAI_GET_PNF_INSTANCE +\r
156                 COMPONENT.FORWARD_SLASH + encodeURIComponent(globalCustomerId) +\r
157                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceType) +\r
158                 COMPONENT.FORWARD_SLASH + encodeURIComponent(serviceInstanceId);\r
159             $http.get(url, {}, {\r
160                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
161             }).then(function(response) {\r
162                 if (response.data != null) {\r
163                     successCallback(response);\r
164                 } else {\r
165                     errorCallback(response);\r
166                 }\r
167             }, function(response) {\r
168                 errorCallback(response);\r
169             });\r
170         },\r
171 \r
172         searchServiceInstances: searchServiceInstances,\r
173 \r
174         getModelVersionId: function (subscriberId, instanceId) {\r
175             var globalCustomerIdQuery = COMPONENT.SELECTED_SUBSCRIBER_SUB_PATH + subscriberId;\r
176             var serviceInstanceQuery = COMPONENT.SELECTED_SERVICE_INSTANCE_SUB_PATH + instanceId;\r
177 \r
178             var query = "?" + getJoinedQueryString([globalCustomerIdQuery, serviceInstanceQuery]);\r
179 \r
180             var deferred = $q.defer();\r
181 \r
182             searchServiceInstances(query).then(function (response) {\r
183                 var displayData = response.displayData;\r
184                 if (displayData[0] && displayData[0].aaiModelVersionId) {\r
185                     deferred.resolve(displayData[0].aaiModelVersionId);\r
186                 } else {\r
187                     deferred.reject(FIELD.ERROR.MODEL_VERSION_ID_MISSING);\r
188                 }\r
189             }).catch(function (err) {\r
190                 deferred.reject(err);\r
191             });\r
192 \r
193             return deferred.promise;\r
194         },\r
195 \r
196         getSubDetails : function(selectedSubscriber, selectedServiceInstance, successCallback, errorCallback) {\r
197             var subscriber;\r
198             var displayData;\r
199             $http.get( COMPONENT.AAI_SUB_DETAILS_PATH  + selectedSubscriber, {}, {\r
200 \r
201 \r
202                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
203             }).then(function(response) {\r
204                 displayData = [];\r
205                 subscriber = response.data;\r
206                 var subscriberName = subscriber[FIELD.ID.SUBNAME];\r
207                 if (subscriber[FIELD.ID.SERVICE_SUBSCRIPTIONS] != null) {\r
208                     angular.forEach(subscriber[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION], function(serviceSubscription, key) {\r
209                         var serviceInstanceId = [];\r
210                         var serviceType = "";\r
211                         if (serviceSubscription[FIELD.ID.SERVICETYPE] != null) {\r
212                             serviceType = serviceSubscription[FIELD.ID.SERVICETYPE];\r
213                         } else {\r
214                             serviceType = FIELD.PROMPT.NO_SERVICE_SUB;\r
215                         }\r
216                         if (serviceSubscription[FIELD.ID.SERVICE_INSTANCES] != null) {\r
217                             angular.forEach(serviceSubscription[FIELD.ID.SERVICE_INSTANCES][FIELD.ID.SERVICE_INSTANCE], function(instValue, instKey) {\r
218                                 // put them together, i guess\r
219                                 var inst = { "serviceInstanceId": instValue[FIELD.ID.SERVICE_INSTANCE_ID],\r
220                                     "aaiModelInvariantId": instValue[FIELD.ID.MODEL_INVAR_ID],\r
221                                     "aaiModelVersionId": instValue[FIELD.ID.MODEL_VERSION_ID],\r
222                                     "serviceInstanceName": instValue[FIELD.ID.SERVICE_INSTANCE_NAME]\r
223                                 };\r
224                                 if (selectedServiceInstance != null) {\r
225                                     if ((instValue[FIELD.ID.SERVICE_INSTANCE_ID] == selectedServiceInstance ) || (instValue[FIELD.ID.SERVICE_INSTANCE_NAME] == selectedServiceInstance)) {\r
226                                         serviceInstanceId.push(inst);\r
227                                     }\r
228                                 } else {\r
229                                     serviceInstanceId.push(inst);\r
230                                 }\r
231                             });\r
232                         } else {\r
233                             serviceInstanceId = [ FIELD.PROMPT.NO_SERVICE_INSTANCE ];\r
234                         }\r
235                         angular.forEach(serviceInstanceId, function(subVal, subKey) {\r
236                             displayData.push({\r
237                                 globalCustomerId        : selectedSubscriber,\r
238                                 subscriberName          : subscriberName,\r
239                                 serviceType             : serviceType,\r
240                                 serviceInstanceId       : subVal.serviceInstanceId,\r
241                                 aaiModelInvariantId             : subVal.aaiModelInvariantId,\r
242                                 aaiModelVersionId\r
243                                     : subVal.aaiModelVersionId,\r
244                                 serviceInstanceName     : subVal.serviceInstanceName,\r
245                                 isPermitted: serviceSubscription[FIELD.ID.IS_PERMITTED]\r
246                             });\r
247                         });\r
248                     });\r
249                 } else {\r
250                     displayData.push({\r
251                         globalCustomerId        : selectedSubscriber,\r
252                         subscriberName          : subscriberName,\r
253                         serviceType             : FIELD.PROMPT.NO_SERVICE_SUB,\r
254                         serviceInstanceId       : FIELD.PROMPT.NO_SERVICE_INSTANCE\r
255                     });\r
256                 }\r
257                 successCallback(displayData, subscriberName);\r
258             }, function(response) {\r
259                 errorCallback(response);});\r
260         },\r
261 \r
262         getSubList : function(successCallback, errorCallback ) {\r
263 \r
264             $http.get( FIELD.ID.AAI_GET_FULL_SUBSCRIBERS, {}, {\r
265 \r
266 \r
267                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
268             }).then(function(response) {\r
269                 var customerList = [];\r
270                 if (response.data.customer != null) {\r
271                     angular.forEach(response.data.customer, function(subVal, subKey) {\r
272                         var cust = { "globalCustomerId": subVal[FIELD.ID.GLOBAL_CUSTOMER_ID], "subscriberName": subVal[FIELD.ID.SUBNAME],\r
273                             "isPermitted": subVal[FIELD.ID.IS_PERMITTED], };\r
274                         customerList.push(cust);\r
275                     });\r
276                     successCallback(customerList);\r
277                 } else {\r
278                     errorCallback(response);\r
279                 }\r
280             },function(response) {\r
281                 errorCallback(response);\r
282             });\r
283         },\r
284 \r
285         getServiceInstance : getServiceInstance,\r
286         getPnfByName : getPnfByName,\r
287 \r
288         getGlobalCustomerIdByInstanceIdentifier : function(serviceInstanceIdentifier, findBy) {\r
289             serviceInstanceIdentifier.trim();\r
290 \r
291             return getServiceInstance(serviceInstanceIdentifier, findBy)\r
292                 .then(function (response) {\r
293                     return getGlobalCustomerIdFromServiceInstanceResponse(response);\r
294             });\r
295         },\r
296 \r
297         getMultipleValueParamQueryString: function(values, paramSubPath) {\r
298             if (values.length) {\r
299                 return paramSubPath + values.filter(function (val) {return val;}).join("&" + paramSubPath);\r
300             }\r
301         },\r
302 \r
303         getJoinedQueryString: getJoinedQueryString,\r
304 \r
305         getServices2 : function(successCallback, errorCallback ) {\r
306 \r
307             $http.get( FIELD.ID.AAI_GET_SERVICES, {}, {\r
308 \r
309 \r
310                 timeout : PropertyService.getServerResponseTimeoutMsec()\r
311             }).then(function(response) {\r
312                 var customerList = [];\r
313                 if (response.data != null) {\r
314                     var serviceIdList = [];\r
315                     angular.forEach(response.data, function(value, key) {\r
316                         angular.forEach(value, function(subVal, key) {\r
317                             var newVal = { "id" : subVal[FIELD.ID.SERVICE_ID], "description" : subVal[FIELD.ID.SERVICE_DESCRIPTION] ,\r
318                                 "isPermitted" : subVal[FIELD.ID.IS_PERMITTED]\r
319 \r
320                             };serviceIdList.push(newVal);\r
321                         });\r
322                     });\r
323                     successCallback(serviceIdList);\r
324                 } else {\r
325                     errorCallback(response);\r
326                 }\r
327             },function(response) {\r
328                 errorCallback(response);\r
329             });\r
330         },\r
331 \r
332         getSubscriptionServiceTypeList : function(globalCustomerId,\r
333                                                   successCallbackFunction) {\r
334             $log\r
335                 .debug("AaiService:getSubscriptionServiceTypeList: globalCustomerId: "\r
336                     + globalCustomerId);\r
337             if ( UtilityService.hasContents(globalCustomerId) ) {\r
338                 $http.get(\r
339                     COMPONENT.AAI_SUB_DETAILS_PATH\r
340                     + globalCustomerId + COMPONENT.ASSIGN + Math.random(),\r
341                     {\r
342                         timeout : PropertyService\r
343                             .getServerResponseTimeoutMsec()\r
344                     }).then(function(response) {\r
345                     if (response.data && response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS]) {\r
346                         var serviceTypes = [];\r
347                         var serviceSubscriptions = response.data[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION];\r
348 \r
349                         for (var i = 0; i < serviceSubscriptions.length; i++) {\r
350                             serviceTypes.push({\r
351                                 "name":serviceSubscriptions[i][FIELD.ID.SERVICETYPE],\r
352                                 "isPermitted": serviceSubscriptions[i][FIELD.ID.IS_PERMITTED],\r
353                                 "id": i\r
354                             });}\r
355                         successCallbackFunction(serviceTypes);\r
356                     } else {\r
357                         successCallbackFunction([]);\r
358                     }\r
359                 })["catch"]\r
360                 (UtilityService.runHttpErrorHandler);\r
361             }\r
362         },\r
363         getLcpCloudRegionTenantList : function(globalCustomerId, serviceType,\r
364                                                successCallbackFunction) {\r
365             $log\r
366                 .debug("AaiService:getLcpCloudRegionTenantList: globalCustomerId: "\r
367                     + globalCustomerId);\r
368             var url =   COMPONENT.AAI_GET_TENANTS\r
369                 + globalCustomerId + COMPONENT.FORWARD_SLASH + serviceType + COMPONENT.ASSIGN + Math.random();\r
370 \r
371             $http.get(url,\r
372                 {\r
373                     timeout : PropertyService\r
374                         .getServerResponseTimeoutMsec()\r
375                 }).then(function(response) {\r
376                 var lcpCloudRegionTenants = [];\r
377                 var aaiLcpCloudRegionTenants = response.data;\r
378 \r
379                 for (var i = 0; i < aaiLcpCloudRegionTenants.length; i++) {\r
380                     lcpCloudRegionTenants.push({\r
381                         "cloudOwner": aaiLcpCloudRegionTenants[i][COMPONENT.CLOUD_OWNER],\r
382                         "cloudRegionId": aaiLcpCloudRegionTenants[i][COMPONENT.CLOUD_REGION_ID],\r
383                         "tenantName": aaiLcpCloudRegionTenants[i][COMPONENT.TENANT_NAME],\r
384                         "tenantId": aaiLcpCloudRegionTenants[i][COMPONENT.TENANT_ID],\r
385                         "isPermitted": aaiLcpCloudRegionTenants[i][COMPONENT.IS_PERMITTED]});\r
386                 }\r
387 \r
388                 successCallbackFunction(lcpCloudRegionTenants);\r
389             }).catch(function(error) {\r
390                 (UtilityService.runHttpErrorHandler(error.data, error.status));\r
391             })\r
392         },\r
393         getSubscribers : function(successCallbackFunction) {\r
394             $log\r
395                 .debug("AaiService:getSubscribers");\r
396             var url =  FIELD.ID.AAI_GET_SUBSCRIBERS + COMPONENT.ASSIGN + Math.random();\r
397 \r
398             $http.get(url,\r
399                 {\r
400                     timeout : PropertyService\r
401                         .getServerResponseTimeoutMsec()\r
402                 }).then(function(response) {\r
403                 if (response.data) {\r
404                     successCallbackFunction(response.data.customer);\r
405                 } else {\r
406                     successCallbackFunction([]);\r
407                 }\r
408             })["catch"]\r
409             (UtilityService.runHttpErrorHandler);\r
410         },\r
411         getProvOptionsFromSystemProp : function(successCallbackFunction) {\r
412             $log\r
413                 .debug("AaiService:getProvOptionsFromSystemProp");\r
414             var url =  COMPONENT.GET_SYSTEM_PROP_VNF_PROV_STATUS_PATH;\r
415 \r
416             $http.get(url,\r
417                 {\r
418                     timeout : PropertyService\r
419                         .getServerResponseTimeoutMsec()\r
420                 }).then(function(response) {\r
421                 if (response.data) {\r
422                     successCallbackFunction(response);\r
423                 } else {\r
424                     successCallbackFunction([]);\r
425                 }\r
426             })["catch"]\r
427             (UtilityService.runHttpErrorHandler);\r
428         },\r
429         getLoggedInUserID : function(successCallbackFunction, catchCallbackFunction) {\r
430             $log\r
431                 .debug("AaiService:getLoggedInUserID");\r
432             var url = COMPONENT.GET_USER_ID;\r
433 \r
434             $http.get(url,\r
435                 {\r
436                     transformResponse: [function (data) {\r
437                         return data;\r
438                     }],\r
439                     timeout : PropertyService\r
440                         .getServerResponseTimeoutMsec()\r
441                 }).then(function(response) {\r
442                 if (response.data) {\r
443                     successCallbackFunction(response);\r
444                 } else {\r
445                     successCallbackFunction([]);\r
446                 }\r
447             },function(failure){console.log("failure")})["catch"]\r
448                 if(catchCallbackFunction) {\r
449                     catchCallbackFunction();\r
450                 }\r
451             (UtilityService.runHttpErrorHandler);\r
452         },\r
453         getServices : function(successCallbackFunction) {\r
454             $log\r
455                 .debug("AaiService:getServices");\r
456             var url =  COMPONENT.AAI_GET_SERVICES + COMPONENT.ASSIGN + Math.random();\r
457 \r
458             $http.get(url,\r
459                 {\r
460                     timeout: PropertyService\r
461                         .getServerResponseTimeoutMsec()\r
462                 }).then(function (response) {\r
463                 if (response.data) {\r
464                     successCallbackFunction(response);\r
465                 } else {\r
466                     successCallbackFunction([]);\r
467                 }\r
468             })["catch"]\r
469             (UtilityService.runHttpErrorHandler);\r
470         },\r
471 \r
472         getAicZones: function (successCallbackFunction) {\r
473             $log\r
474                 .debug("getAicZones:getAicZones");\r
475             var url = COMPONENT.AAI_GET_AIC_ZONES +COMPONENT.ASSIGN + Math.random();\r
476 \r
477             $http.get(url,\r
478                 {\r
479                     timeout : PropertyService\r
480                         .getServerResponseTimeoutMsec()\r
481                 }).then(function(response) {\r
482                 if (response.data) {\r
483                     successCallbackFunction(response);\r
484                 } else {\r
485                     successCallbackFunction([]);\r
486                 }\r
487             })["catch"]\r
488             (UtilityService.runHttpErrorHandler);},\r
489         getAicZoneForPNF: function (globalCustomerId,serviceType,serviceInstanceId,successCallbackFunction) {\r
490             $log\r
491                 .debug("getAicZones:getAicZones");\r
492             var url = COMPONENT.AAI_GET_AIC_ZONE_FOR_PNF\r
493                 .replace('@serviceInstanceId', serviceInstanceId)\r
494                 .replace('@globalCustomerId', globalCustomerId)\r
495                 .replace('@serviceType', serviceType);\r
496             $http.get(url,\r
497                 {\r
498                     timeout : PropertyService\r
499                         .getServerResponseTimeoutMsec()\r
500                 }).then(function(response) {\r
501                 successCallbackFunction(response.data);\r
502             })["catch"]\r
503             (UtilityService.runHttpErrorHandler);},\r
504 \r
505         getServiceModels : function(globalCustomerId,serviceType,successCallbackFunction) {\r
506             $log\r
507                 .debug("AaiService:getServices");\r
508             var url =   COMPONENT.AAI_GET_SERVICES + COMPONENT.FORWARD_SLASH+globalCustomerId+ COMPONENT.FORWARD_SLASH +serviceType+COMPONENT.ASSIGN + Math.random();\r
509 \r
510             $http.get(url,\r
511                 {\r
512                     timeout : PropertyService\r
513                         .getServerResponseTimeoutMsec()\r
514                 }).then(function(response) {\r
515                 if (response.data) {\r
516                     successCallbackFunction(response);\r
517                 } else {\r
518                     successCallbackFunction([]);\r
519                 }\r
520             })["catch"]\r
521             (UtilityService.runHttpErrorHandler);\r
522         },\r
523         getServiceModelsByServiceType : function(namedQueryId,globalCustomerId,serviceType,successCallbackFunction) {\r
524             $log\r
525                 .debug("AaiService:getServiceModelsByServiceType");\r
526             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
527 \r
528             $http.get(url,\r
529                 {\r
530                     timeout : PropertyService\r
531                         .getServerResponseTimeoutMsec()\r
532                 }).then(function(response) {\r
533                 if (response.data) {\r
534                     successCallbackFunction(response);\r
535                 } else {\r
536                     successCallbackFunction([]);\r
537                 }\r
538             })["catch"]\r
539             (UtilityService.runHttpErrorHandler);\r
540         },\r
541 \r
542                 getVnfsByCustomerIdAndServiceType: function(globalSubscriberId, serviceType){\r
543             var deferred = $q.defer();\r
544 \r
545             if (UtilityService.hasContents(globalSubscriberId) &&\r
546                                 UtilityService.hasContents(serviceType) ) {\r
547 \r
548                 $http.get(COMPONENT.AAI_GET_VNF_BY_CUSTOMERID_AND_SERVICETYPE + globalSubscriberId + COMPONENT.FORWARD_SLASH\r
549                                         + serviceType )\r
550                     .success(function (response) {\r
551                         if(response) {\r
552                             deferred.resolve({data: response});\r
553                         } else {\r
554                             deferred.resolve({data: []});\r
555                         }\r
556                     }).error(function (data, status, headers, config) {\r
557                     deferred.reject({message: data, status: status});\r
558                 });\r
559             }\r
560 \r
561             return deferred.promise;\r
562         },\r
563 \r
564         getVnfVersionsByInvariantId: function(modelInvariantId){\r
565             var deferred = $q.defer();\r
566 \r
567             if (UtilityService.hasContents(modelInvariantId)) {\r
568                 var body = {"versions" : modelInvariantId}\r
569                 $http.post(( COMPONENT.AAI_GET_VERSION_BY_INVARIANT_ID),body)\r
570 \r
571                     .success(function (response) {\r
572                         if(response) {\r
573                             deferred.resolve({data: response});\r
574                         } else {\r
575                             deferred.resolve({data: []});\r
576                         }\r
577                     }).error(function (data, status, headers, config) {\r
578                     deferred.reject({message: data, status: status});\r
579                 });\r
580             }\r
581 \r
582             return deferred.promise;\r
583         },\r
584 \r
585 \r
586 \r
587         getSubscriberServiceTypes: function(subscriberUuid) {\r
588             var deferred = $q.defer();\r
589             $log.debug("AaiService:getSubscriberServiceTypes: subscriberUuid: " + subscriberUuid);\r
590 \r
591             if (UtilityService.hasContents(subscriberUuid)) {\r
592                 $http.get(COMPONENT.AAI_SUB_DETAILS_PATH + subscriberUuid + COMPONENT.ASSIGN + Math.random())\r
593                     .success(function (response) {\r
594                         if(response && [FIELD.ID.SERVICE_SUBSCRIPTIONS]) {\r
595                             deferred.resolve({data: response[FIELD.ID.SERVICE_SUBSCRIPTIONS][FIELD.ID.SERVICE_SUBSCRIPTION]});\r
596                         } else {\r
597                             deferred.resolve({data: []});\r
598                         }\r
599                     }).error(function (data, status, headers, config) {\r
600                     deferred.reject({message: data, status: status});\r
601                 });\r
602             }\r
603 \r
604             return deferred.promise;\r
605         },\r
606         getVnfInstancesList: function(globalSubscriberId, serviceType, modelVersionId ,modelInvariantId, cloudRegionId)  {\r
607             var deferred = $q.defer();\r
608             $http.get([COMPONENT.AAI_GET_VNF_INSTANCES_LIST,\r
609                     globalSubscriberId,\r
610                     serviceType,\r
611                     modelVersionId,\r
612                     modelInvariantId,\r
613                     cloudRegionId]\r
614                 .join(COMPONENT.FORWARD_SLASH))\r
615                 .success(function (response) {\r
616                     deferred.resolve(response);\r
617                 }).error(function (data, status) {\r
618                     deferred.reject({message: data, status: status});\r
619             });\r
620             return deferred.promise;\r
621         },\r
622         getPnfInstancesList: function (globalCustomerId, serviceType, modelVersionId, modelInvariantId, cloudRegionId, equipVendor, equipModel) {\r
623             var deferred = $q.defer();\r
624             $http.get([COMPONENT.AAI_GET_PNF_INSTANCES_LIST,\r
625                     globalCustomerId, serviceType,\r
626                     modelVersionId, modelInvariantId,\r
627                     cloudRegionId,\r
628                     equipVendor, equipModel\r
629                 ].join(COMPONENT.FORWARD_SLASH))\r
630                 .success(function (response) {\r
631                     deferred.resolve(response);\r
632                 }).error(function (data, status) {\r
633                 deferred.reject({message: data, status: status});\r
634             });\r
635             return deferred.promise;\r
636         },\r
637         getByUri: function(uri)  {\r
638             var deferred = $q.defer();\r
639 \r
640             $http.get(COMPONENT.AAI_GET_BY_URI + uri)\r
641                 .success(function (response) {\r
642                     deferred.resolve({data: []});\r
643                 }).error(function (data, status, headers, config) {\r
644                     deferred.reject({message: data, status: status});\r
645                 });\r
646 \r
647             return deferred.promise;\r
648         },\r
649         getConfiguration: function(configurationId)  {\r
650             var deferred = $q.defer();\r
651 \r
652             $http.get(COMPONENT.AAI_GET_CONFIGURATION + configurationId)\r
653                 .success(function (response) {\r
654                     deferred.resolve({data: []});\r
655                 }).error(function (data, status, headers, config) {\r
656                 deferred.reject({message: data, status: status});\r
657             });\r
658 \r
659             return deferred.promise;\r
660         }\r
661     }};\r
662 \r
663 appDS2.factory("AaiService", ["$http", "$log", "PropertyService",\r
664     "UtilityService", "COMPONENT", "FIELD", "$q", AaiService]);\r