3255bc9a390e1665bca697cb539e3238dd72a067
[vid.git] / vid-app-common / src / main / webapp / app / vid / scripts / services / deleteResumeService.js
1 /*-
2  * ============LICENSE_START=======================================================
3  * VID
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
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  * ============LICENSE_END=========================================================
19  */
20
21 "use strict";
22
23 var DeleteResumeService = function($log, AaiService, AsdcService, DataService,
24         ComponentService, COMPONENT, FIELD, UtilityService) {
25
26     var _this = this;
27
28     var getAsyncOperationList = function() {
29         if (DataService.getLoggedInUserId() == null)
30                         getLoggedInUserID();
31                 switch (_this.componentId) {
32                 case COMPONENT.SERVICE:
33                         return [ getSubscribers, getLcpCloudRegionTenantList ];
34                 case COMPONENT.NETWORK:
35                         return [ getLcpCloudRegionTenantList ];
36                 case COMPONENT.VNF:
37                         return [ getLcpCloudRegionTenantList ];
38                 case COMPONENT.VF_MODULE:
39                         return [ getLcpCloudRegionTenantList ];
40                 case COMPONENT.VOLUME_GROUP:
41                         return [ getLcpCloudRegionTenantList ];
42                 case COMPONENT.CONFIGURATION:
43                         return [ getLcpCloudRegionTenantList ];
44                 }
45         };
46         
47         var getLcpCloudRegionTenantList = function() {
48                 //console.log ( "global customer id: " ); 
49                 //console.log ( JSON.stringify (DataService.getGlobalCustomerId()) );
50                 
51                 //console.log ( "service type: " ); 
52                 //console.log ( JSON.stringify (DataService.getServiceType()) );
53                 
54                 AaiService.getLcpCloudRegionTenantList(DataService
55                                 .getGlobalCustomerId(), DataService.getServiceType(), function(
56                                 response) {
57                         DataService.setCloudRegionTenantList(response);
58                         UtilityService.startNextAsyncOperation();
59                 });
60         };
61         
62         var getLoggedInUserID = function() {
63                 AaiService.getLoggedInUserID(function(response) {
64                         DataService.setLoggedInUserId(response.data);
65                         UtilityService.startNextAsyncOperation();
66                 });
67         };
68         
69         var getSubscribers = function() {
70                 AaiService.getSubscribers(function(response) {
71                         DataService.setSubscribers(response);
72                         UtilityService.startNextAsyncOperation();
73                 });
74         };
75         
76         var internalGetParametersHandler = function() {
77                 if (angular.isFunction(_this.getParametersHandler)) {
78                                 if (_this.componentId == COMPONENT.SERVICE) {
79                                         if ( DataService.getALaCarte() ) {
80                                                 _this.getParametersHandler({
81                                                         summaryList : getSummaryList(),
82                                                         userProvidedList : getUserProvidedList()
83                                                 }, true);
84                                         }
85                                         else {
86                                                 _this.getParametersHandler({
87                                                         summaryList : getSummaryList(),
88                                                         userProvidedList : getUserProvidedList()
89                                                 }, false);
90                                         }
91                         }
92                         else {
93                                 _this.getParametersHandler({
94                                         summaryList : getSummaryList(),
95                                         userProvidedList : getUserProvidedList()
96                                 }, false);
97                         }
98                 }
99         };
100         
101         var getSubscribersParameter = function() {
102                 var subscribers = DataService.getSubscribers();
103                 var parameter = FIELD.PARAMETER.SUBSCRIBER_NAME;
104                 parameter.optionList = [];
105
106                 for (var i = 0; i < subscribers.length; i++) {
107                         parameter.optionList.push({
108                                 id : subscribers[i][FIELD.ID.GLOBAL_CUSTOMER_ID],
109                                 name : subscribers[i][FIELD.ID.SUBNAME]
110                         })
111                 }
112                 return parameter;
113         };
114         
115         var getServiceId = function() {
116                 var serviceIdList = DataService.getServiceIdList();
117                 var parameter = FIELD.PARAMETER.PRODUCT_FAMILY;
118                 parameter.optionList = new Array();
119                 for (var i = 0; i < serviceIdList.length; i++) {
120                         parameter.optionList.push({
121                                 id : serviceIdList[i].id,
122                                 name : serviceIdList[i].description
123                         });
124                 }
125                 return parameter;
126         };
127         
128         var getUserProvidedList = function() {
129
130                 //var parameterList = [ FIELD.PARAMETER.INSTANCE_NAME ];
131
132                 var parameterList = [];
133                 
134                 switch (_this.componentId) {
135                 case COMPONENT.SERVICE:
136                         if ( DataService.getALaCarte() ) {
137                                 parameterList = [];
138                         }
139                         else {
140                                 parameterList = parameterList.concat ([getLcpRegion(),
141                                     FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,
142                                     FIELD.PARAMETER.TENANT_DISABLED ]);
143                         }
144                         break;
145                 case COMPONENT.NETWORK:
146                 case COMPONENT.CONFIGURATION:
147                 case COMPONENT.VNF:
148                         parameterList = parameterList.concat([ //getServiceId(),
149                                         getLcpRegion(), FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,
150                                         FIELD.PARAMETER.TENANT_DISABLED ]);
151                         break;
152                 case COMPONENT.VF_MODULE:
153                         parameterList = parameterList.concat([
154                                 getLcpRegion(),
155                                         FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,
156                                         FIELD.PARAMETER.TENANT_DISABLED
157                         ]);
158                         
159                         break;
160                 case COMPONENT.VOLUME_GROUP:
161                         parameterList = parameterList.concat([ getLcpRegion(),
162                                         FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN,
163                                         FIELD.PARAMETER.TENANT_DISABLED ]);
164                 }
165
166                 //parameterList.push(FIELD.PARAMETER.SUPPRESS_ROLLBACK);
167
168                 //addArbitraryParameters(parameterList);
169
170                 return parameterList;
171         };
172     var getSummaryList = function() {
173         switch (_this.componentId) {
174         case COMPONENT.CONFIGURATION:
175         case COMPONENT.NETWORK:
176         case COMPONENT.SERVICE:
177         case COMPONENT.VNF:
178         case COMPONENT.VF_MODULE:
179         case COMPONENT.VOLUME_GROUP:
180             var summaryList = [ {
181                 name : FIELD.NAME.SUBSCRIBER_NAME,
182                 value : DataService.getSubscriberName()
183             }, {
184                 name : FIELD.NAME.CUSTOMER_ID,
185                 value : DataService.getGlobalCustomerId()
186             }, {
187                 name : FIELD.NAME.SERVICE_UUID,
188                 value : DataService.getServiceUuid()
189             }, {
190                 name : FIELD.NAME.SERVICE_NAME,
191                 value : DataService.getServiceName()
192            /* }, {
193                 name : FIELD.NAME.USER_SERVICE_INSTANCE_NAME,
194                 value : DataService.getUserServiceInstanceName()*/
195             } ];
196
197                 _this.parameterList = new Array();
198                 
199                 addToList(FIELD.NAME.SERVICE_NAME, DataService.getServiceName());
200
201                 switch (_this.componentId) {
202                 case COMPONENT.SERVICE:
203                         addToList(FIELD.NAME.SERVICE_INVARIANT_UUID, DataService
204                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
205                         addToList(FIELD.NAME.SERVICE_VERSION, DataService
206                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);
207                         addToList(FIELD.NAME.SERVICE_UUID, DataService
208                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);
209                         addToList(FIELD.NAME.SERVICE_DESCRIPTION, DataService
210                                         .getModelInfo(_this.componentId)[FIELD.ID.DESCRIPTION]);
211                         addToList(FIELD.NAME.SERVICE_CATEGORY, DataService
212                                         .getModelInfo(_this.componentId)[FIELD.ID.CATEGORY]);
213                         break;
214                 case COMPONENT.VF_MODULE:
215                         addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService
216                                         .getSubscriberName());
217                         addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService
218                                         .getServiceInstanceName());
219                         addToList(FIELD.NAME.MODEL_NAME, DataService
220                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);
221                         addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService
222                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
223                         addToList(FIELD.NAME.MODEL_VERSION, DataService
224                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);
225                         addToList(FIELD.NAME.MODEL_UUID, DataService
226                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);
227                         break;
228                 case COMPONENT.CONFIGURATION:
229                 case COMPONENT.NETWORK:
230                 case COMPONENT.VNF:
231                 case COMPONENT.VOLUME_GROUP:
232                         addToList(FIELD.NAME.SUBSCRIBER_NAME, DataService
233                                         .getSubscriberName());
234                         addToList(FIELD.NAME.SERVICE_INSTANCE_NAME, DataService
235                                         .getServiceInstanceName());
236                         addToList(FIELD.NAME.MODEL_NAME, DataService
237                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME]);
238                         addToList(FIELD.NAME.MODEL_INVARIANT_UUID, DataService
239                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_INVARIANT_ID]);
240                         addToList(FIELD.NAME.MODEL_VERSION, DataService
241                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_VERSION]);
242                         addToList(FIELD.NAME.MODEL_UUID, DataService
243                                         .getModelInfo(_this.componentId)[FIELD.ID.MODEL_NAME_VERSION_ID]);
244                         break;
245                 }
246                 
247             /*var additionalList = ComponentService.getInventoryParameterList(
248                     _this.componentId, DataService.getInventoryItem());*/
249                 var additionalList = ComponentService.getDisplayNames(ComponentService
250                             .getInventoryParameterList(_this.componentId, DataService
251                                     .getInventoryItem(), true ));
252
253             return summaryList.concat(ComponentService
254                     .getDisplayNames(additionalList));
255         }
256     };
257
258     var getMsoUrl = function() {
259                 switch (_this.componentId) {
260                         case COMPONENT.CONFIGURATION:
261                                 return "mso_delete_configuration/"
262                                         + DataService.getServiceInstanceId() + "/configurations/"
263                                         + DataService.getConfigurationInstanceId();
264                         case COMPONENT.NETWORK:
265                                 return "mso_delete_nw_instance/"
266                                         + DataService.getServiceInstanceId() + "/networks/"
267                                         + DataService.getNetworkInstanceId();
268                         case COMPONENT.SERVICE:
269                                 if(DataService.getE2EService() === true)
270                                         return "mso_delete_e2e_svc_instance/"+ DataService.getServiceInstanceId();
271                                 else
272                                         return "mso_delete_svc_instance/"+ DataService.getServiceInstanceId();
273                         case COMPONENT.VNF:
274                                 return "mso_delete_vnf_instance/"
275                                         + DataService.getServiceInstanceId() + "/vnfs/"
276                                         + DataService.getVnfInstanceId();
277                         case COMPONENT.VF_MODULE:
278                                 return "mso_delete_vfmodule_instance/"
279                                         + DataService.getServiceInstanceId() + "/vnfs/"
280                                         + DataService.getVnfInstanceId() + "/vfModules/"
281                                         + DataService.getVfModuleInstanceId();
282                         case COMPONENT.VOLUME_GROUP:
283                                 return "mso_delete_volumegroup_instance/"
284                                         + DataService.getServiceInstanceId() + "/vnfs/"
285                                         + DataService.getVnfInstanceId() + "/volumeGroups/"
286                                         + DataService.getVolumeGroupInstanceId();
287                 }
288     };
289
290         var addToList = function(name, value) {
291                 _this.parameterList.push({
292                         name : name,
293                         value : value
294                 });
295         };
296
297         var getMsoE2ERequest = function(parameterList) {
298                 return {
299                         "globalSubscriberId": DataService.getSubscriberName(),
300                         "serviceType": DataService.getServiceType()
301                 };
302         };
303
304     var getMsoRequestDetails = function(parameterList) {
305         console.log("getMsoRequestDetails invoked");
306
307                 //VoLTE logic goes here
308                 if(DataService.getE2EService() === true) {
309                         return getMsoE2ERequest(parameterList);
310                 }
311
312                 var inventoryInfo = ComponentService.getInventoryInfo(
313                         _this.componentId, DataService.getInventoryItem());
314                 var modelInfo = DataService.getModelInfo(_this.componentId);
315                 var requestorloggedInId = DataService.getLoggedInUserId();
316                 if (requestorloggedInId ==  null)
317                         requestorloggedInId = "";
318                 var requestDetails = {
319                                 modelInfo : {
320                                         modelType : _this.componentId,
321                                         modelInvariantId : modelInfo.modelInvariantId,
322                                         modelVersionId : modelInfo.modelNameVersionId,
323                                         modelName : modelInfo.modelName,
324                                         modelCustomizationName : modelInfo.modelCustomizationName,
325                                         modelCustomizationId : modelInfo.customizationUuid,
326                                         modelVersion : modelInfo.modelVersion
327                                 },
328                                 requestInfo : {
329                                         source : FIELD.ID.VID,
330                                         requestorId: requestorloggedInId
331                                 }
332                 };
333                 
334                 switch (_this.componentId) {
335                         case COMPONENT.SERVICE:
336                                 requestDetails.requestParameters = {
337                                         aLaCarte : DataService.getALaCarte()
338                                 };
339                                 if ( !(DataService.getALaCarte()) ) {
340                                         // for macro delete include cloud config.
341                                         var lcpRegion = getValueFromList(FIELD.ID.LCP_REGION, parameterList);
342                                         if (lcpRegion === FIELD.KEY.LCP_REGION_TEXT) {
343                                                 lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,
344                                                                 parameterList);
345                                         }
346                                         requestDetails.cloudConfiguration = {
347                                                 lcpCloudRegionId : lcpRegion,
348                                                 tenantId : getValueFromList(FIELD.ID.TENANT, parameterList)
349                                         };
350                                 }
351                             break;
352                         case COMPONENT.VNF:
353             case COMPONENT.CONFIGURATION:
354                             console.log("getMsoRequestDetails COMPONENT.VNF");
355                                 var lcpRegion = getValueFromList(FIELD.ID.LCP_REGION, parameterList);
356                                 if (lcpRegion === FIELD.KEY.LCP_REGION_TEXT) {
357                                         lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,
358                                                         parameterList);
359                                 }
360                                 requestDetails.cloudConfiguration = {
361                                         lcpCloudRegionId : lcpRegion,
362                                         tenantId : getValueFromList(FIELD.ID.TENANT, parameterList)
363                                 };
364         
365                                 break;
366                         case COMPONENT.VF_MODULE:
367                         case COMPONENT.NETWORK:
368                                         var lcpRegion = getValueFromList(FIELD.ID.LCP_REGION, parameterList);
369                                         if (lcpRegion === FIELD.KEY.LCP_REGION_TEXT) {
370                                                 lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,
371                                                                 parameterList);
372                                         }
373                                         requestDetails.cloudConfiguration = {
374                                                         lcpCloudRegionId : lcpRegion,
375                                                         tenantId : getValueFromList(FIELD.ID.TENANT, parameterList)
376                                         };      
377                                         break;
378                         case COMPONENT.VOLUME_GROUP:
379                                 var lcpRegion = getValueFromList(FIELD.ID.LCP_REGION, parameterList);
380                                 if (lcpRegion === FIELD.KEY.LCP_REGION_TEXT) {
381                                         lcpRegion = getValueFromList(FIELD.ID.LCP_REGION_TEXT,
382                                                         parameterList);
383                                 }
384                                 requestDetails.cloudConfiguration = {
385                                                 lcpCloudRegionId : lcpRegion,
386                                                 tenantId : getValueFromList(FIELD.ID.TENANT, parameterList)
387                                 };      
388                                 
389                                 break;
390                         default:
391                                 requestDetails.cloudConfiguration = {
392                                         lcpCloudRegionId : DataService.getLcpRegion(),
393                                         tenantId : DataService.getTenant()
394                                 };
395                 }
396                 return requestDetails;
397     }
398     
399     var getLcpRegion = function() {
400                 var cloudRegionTenantList = DataService.getCloudRegionTenantList();
401                 var parameter = "";
402                 if ( UtilityService.hasContents (cloudRegionTenantList) ) {
403                         parameter = FIELD.PARAMETER.LCP_REGION;
404                         parameter.optionList = new Array();
405                         for (var i = 0; i < cloudRegionTenantList.length; i++) {
406                                 for (var j = 0; j < parameter.optionList.length; j++) {
407                                         if (parameter.optionList[j].id === cloudRegionTenantList[i].cloudRegionId) {
408                         parameter.optionList[j].isPermitted =
409                             parameter.optionList[j].isPermitted || cloudRegionTenantList[i].isPermitted;
410                         break;
411                                         }
412                                 }
413                                 if (j < parameter.optionList.length) {
414                                         continue;
415                                 }
416                                 parameter.optionList.push({
417                                         id : cloudRegionTenantList[i].cloudRegionId,
418           isPermitted : cloudRegionTenantList[i].isPermitted
419
420         });
421                         }
422                 }
423                 return parameter;
424         };
425         
426         var getTenantList = function(cloudRegionId) {
427                 var parameter = "";
428                 var cloudRegionTenantList = DataService.getCloudRegionTenantList();
429                 if ( UtilityService.hasContents (cloudRegionTenantList) ) {
430                         var parameter = FIELD.PARAMETER.TENANT_ENABLED;
431                         parameter.optionList = new Array();
432                         for (var i = 0; i < cloudRegionTenantList.length; i++) {
433                                 if (cloudRegionTenantList[i].cloudRegionId === cloudRegionId) {
434                                         parameter.optionList.push({
435                                                 id : cloudRegionTenantList[i].tenantId,
436                                                 name : cloudRegionTenantList[i].tenantName,
437                         isPermitted : cloudRegionTenantList[i].isPermitted
438                     });
439                                 }
440                         }
441                 }
442                 return parameter;
443
444         };
445
446         var addOptionList = function(parameter, optionSimpleArray) {
447                 var optionList = new Array();
448                 if (!angular.isArray(optionSimpleArray)) {
449                         return optionList;
450                 }
451                 for (var i = 0; i < optionSimpleArray.length; i++) {
452                         optionList.push({
453                                 name : optionSimpleArray[i]
454                         });
455                 }
456                 parameter.optionList = optionList;
457                 return parameter;
458         };
459
460     var getValueFromList = function(id, parameterList) {
461                 for (var i = 0; i < parameterList.length; i++) {
462                         if (parameterList[i].id === id) {
463                                 return parameterList[i].value;
464                         }
465                 }
466         };
467
468         var updateUserParameterList = function(updatedId, parameterListControl) {
469                 if (updatedId === FIELD.ID.LCP_REGION) {
470                         var list = parameterListControl.getList(updatedId);
471                         if (list[0].selectedIndex >= 0) {
472                                 parameterListControl
473                                                 .updateList([ getTenantList(list[0].value) ]);
474                         } else {
475                                 parameterListControl
476                                                 .updateList([ FIELD.PARAMETER.TENANT_DISABLED ]);
477                         }
478                         if (list[0].value === FIELD.KEY.LCP_REGION_TEXT) {
479                                 parameterListControl
480                                                 .updateList([ FIELD.PARAMETER.LCP_REGION_TEXT_VISIBLE ]);
481                         } else {
482                                 parameterListControl
483                                                 .updateList([ FIELD.PARAMETER.LCP_REGION_TEXT_HIDDEN ]);
484                         }
485                 } else if (updatedId === FIELD.ID.SUBSCRIBER_NAME) {
486                         var list = parameterListControl.getList(updatedId);
487                         if (list[0].selectedIndex >= 0) {
488                                 DataService.setGlobalCustomerId(list[0].value);
489
490                                 AaiService.getSubscriptionServiceTypeList(DataService
491                                                 .getGlobalCustomerId(), function(response) {
492                                         DataService.setSubscriptionServiceTypeList(response);
493                                         var serviceTypeParameters = FIELD.PARAMETER.SERVICE_TYPE;
494                                         serviceTypeParameters.optionList = [];
495
496                                         for (var i = 0; i < response.length; i++) {
497                                                 serviceTypeParameters.optionList.push({
498                                                         "id" : response[i].name,
499                                                         "name" : response[i].name
500                                                 });
501                                         }
502                                         parameterListControl.updateList([ serviceTypeParameters ]);
503                                 });
504
505                         } else {
506                                 parameterListControl
507                                                 .updateList([ FIELD.PARAMETER.SERVICE_TYPE_DISABLED ]);
508                         }
509                 }
510         };
511
512     return {
513                 initializeComponent : function(componentId) {
514                         _this.componentId = ComponentService.initialize(componentId);
515                 },
516                 getComponentDisplayName : ComponentService.getComponentDisplayName,
517                 getSummaryList : getSummaryList,
518                 getParameters : function(getParametersHandler) {
519                         _this.getParametersHandler = getParametersHandler;
520                         UtilityService.setHttpErrorHandler(_this.httpErrorHandler);
521                         UtilityService.startAsyncOperations(getAsyncOperationList(),
522                                         internalGetParametersHandler);
523                 },
524                 updateUserParameterList : updateUserParameterList,
525                 getMsoRequestDetails : getMsoRequestDetails,
526                 getMsoUrl : getMsoUrl,
527                 isMacro : DataService.getMacro()
528     }
529 }
530
531 appDS2.factory("DeleteResumeService", [ "$log", "AaiService", "AsdcService",
532         "DataService", "ComponentService", "COMPONENT", "FIELD",
533         "UtilityService", DeleteResumeService ]);