Deliver centralized role management feature
[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,$modal) {
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                                 var modalInstance = $modal.open({
46                     templateUrl: 'app/views/microservice-onboarding/microservice-add-details/microservice-add-details.html',
47                     controller: 'MicroserviceAddDetailsCtrl as microserviceAddDetails',
48                     sizeClass: 'modal-large', 
49                     resolve: {
50                                         items: function () {
51                                   return data;
52                                         }
53                         }
54                 })
55                 
56                 modalInstance.result.finally(function (){
57                                 getOnboardingServices();
58                 });
59
60             };
61                         
62             this.deleteService = service => { 
63                    confirmBoxService.deleteItem(service.name).then(isConfirmed => {   
64                 if(isConfirmed){
65                                 if(!service || !service.id){
66                            $log.error('MicroserviceOnboardingCtrl::deleteService: No service or ID... cannot delete');
67                            return;
68                        }
69                        microserviceService.deleteService(service.id).then((res) => {                               
70                            if(res.status == "WARN"){
71                                    confirmBoxService.showInformation("Failed: widgets " +  res.response + " are assoicated with this microservice!");
72                            }else{
73                                    $scope.serviceList.splice($scope.serviceList.indexOf(service), 1);
74                            }
75                        }).catch(err => {
76                            $log.error('MicroserviceOnboardingCtrl::deleteService error:',err);
77                        });
78                    }
79                }).catch(err => {
80                    $log.error('MicroserviceOnboardingCtrl::deleteService error:',err);
81                });
82
83                 
84             };
85             
86             init();
87         }
88     }
89     MicroserviceOnboardingCtrl.$inject = ['$log', 'applicationsService', 'microserviceService', 'ngDialog', 'confirmBoxService',
90         'userProfileService','$cookies', '$scope','$modal'];
91     angular.module('ecompApp').controller('MicroserviceOnboardingCtrl', MicroserviceOnboardingCtrl);
92 })();