[PORTAL-7] Rebase
[portal.git] / ecomp-portal-FE-common / client / app / views / microservice-onboarding / microservice-onboarding.controller.js
1 'use strict';
2 (function () {
3     class MicroserviceOnboardingCtrl {
4         constructor($log, applicationsService, microserviceService, ngDialog, confirmBoxService,
5                     userProfileService, $cookies, $scope) {
6                 
7                 
8             let getOnboardingServices = () => {
9                 microserviceService.getServiceList().then(res => {
10                      $scope.serviceList = res;
11                 }).catch(err => {
12                     $log.error('MicroserviceOnboardingCtrl::getOnboardingServices caught error', err);
13                 });
14             };
15             
16             
17             
18             let init = () => {
19                 $scope.serviceList = [];
20                 getOnboardingServices();
21                 this.serviceTableHeaders = [
22                     {name: 'Microservice Name', value: 'name', isSortable: false},
23                     {name: 'Service Endpoint URL', value: 'url', isSortable: false},
24                     {name: 'Security Type', value: 'securityType', isSortable: false}
25                 ];
26             };
27             
28             this.openAddNewMicroserviceModal = (selectedService) => {
29                 let data = null; 
30                                 if(selectedService){
31                                         if(!selectedService.id){
32                                                 $log.error('MicroserviceOnboardingCtrl:openAddNewMicroserviceModal:service id not found');
33                                                 return; 
34                                         } 
35                                         data = { 
36                                                 service:selectedService,
37                                                 list: $scope.serviceList
38                                         }
39                                 }else{
40                                         data = {
41                                                 list: $scope.serviceList        
42                                         }
43                                 }
44                                 
45                 ngDialog.open({
46                     templateUrl: 'app/views/microservice-onboarding/microservice-add-details/microservice-add-details.html',
47                     controller: 'MicroserviceAddDetailsCtrl',
48                     controllerAs: 'microserviceAddDetails',
49                     data: data
50                 }).closePromise.then(needUpdate => {
51                         if(needUpdate.value === true){
52                                 getOnboardingServices();
53                     }
54                 });
55             };
56                         
57             this.deleteService = service => { 
58                    confirmBoxService.deleteItem(service.name).then(isConfirmed => {   
59                 if(isConfirmed){
60                                 if(!service || !service.id){
61                            $log.error('MicroserviceOnboardingCtrl::deleteService: No service or ID... cannot delete');
62                            return;
63                        }
64                        microserviceService.deleteService(service.id).then((res) => {                               
65                            if(res.status == "WARN"){
66                                    confirmBoxService.showInformation("Failed: widgets " +  res.response + " are assoicated with this microservice!");
67                            }else{
68                                    $scope.serviceList.splice($scope.serviceList.indexOf(service), 1);
69                            }
70                        }).catch(err => {
71                            $log.error('MicroserviceOnboardingCtrl::deleteService error:',err);
72                        });
73                    }
74                }).catch(err => {
75                    $log.error('MicroserviceOnboardingCtrl::deleteService error:',err);
76                });
77
78                 
79             };
80             
81             init();
82         }
83     }
84     MicroserviceOnboardingCtrl.$inject = ['$log', 'applicationsService', 'microserviceService', 'ngDialog', 'confirmBoxService',
85         'userProfileService','$cookies', '$scope'];
86     angular.module('ecompApp').controller('MicroserviceOnboardingCtrl', MicroserviceOnboardingCtrl);
87 })();