summaryrefslogtreecommitdiffstats
path: root/usecaseui-portal/src/app/views/services/sotn-management/manage-service/manage-service.component.ts
blob: 16aee4e7d27114377b607db5fb19173ba5a2465e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
import { Component, OnInit, SimpleChanges } from '@angular/core';
import { HttpClient, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http';
import { baseUrl } from '../../../../datainterface';
@Component({
  selector: 'app-manage-service',
  templateUrl: './manage-service.component.html',
  styleUrls: ['./manage-service.component.less']
})
export class ManageServiceComponent implements OnInit {

  selectedSubscriptionType: string = "";
  serviceSubscriptionList = [] as Array<any>;
  selectedServiceInstance: string = "" ;
  serviceInstanceList = [] as Array<any>;

  expandDataSet = [
    { rowIdx: 1, name: 'i18nTextDefine_serviceInformation', expand: true },
    { rowIdx: 2, name: 'i18nTextDefine_vpnInformation', expand: true },
    { rowIdx: 3, name: 'i18nTextDefine_uniInformation', expand: true }
  ];

  summaryInfo:object = {};
  serviceList:object = {};
  vpnInfo = [];
  uniInfo = [];
  mapped: any;
  myKeys = [] as Array<any>;
  baseUrl = baseUrl.baseUrl
  constructor(private http: HttpClient) { }

  ngOnInit() {
    this.getSubscribeTypes();
  }

   //Get SubscriptionType
   getSubscribeTypes() {
     let httpOptions = {
      headers: new HttpHeaders({
        'Content-Type':  'application/json'
      })
    };
    let url = this.baseUrl + "/uui-lcm/customers/service-subscriptions";
    this.http.get<any>(url, httpOptions).subscribe((data) => {
      this.serviceSubscriptionList = data.subscriptions;
    }, (err) => {
      console.log(err);
    });
  }

  //Get subscription instanceID by calling With Subscription Type
  getServiceInstanceList(subscriptionType) {
     let httpOptions = {
      headers: new HttpHeaders({
        'Content-Type':  'application/json'
      })
    };
    this.serviceInstanceList = [];
    this.selectedServiceInstance="";
    let url = this.baseUrl + "/uui-lcm/Sotnservices/ServiceInstances/"+subscriptionType;
    this.http.get<any>(url,httpOptions).subscribe((data) => {
      this.serviceInstanceList = data.serviceInstanceList; 
    }, (err) => {
      console.log(err);
    });    
  }

  deleteSelectedService() {
    let url = this.baseUrl + "/uui-lcm/Sotnservices/servicesubscription/"+this.selectedSubscriptionType+'/serviceinstance/'+this.selectedServiceInstance;
    let httpOptions = {
      headers: new HttpHeaders({
        'Content-Type':  'application/json'
      })
    };
    this.http.delete<any>(url,httpOptions).subscribe((data) => {
      this.serviceInstanceList = [];
      this.selectedServiceInstance = "";
      this.getServiceInstanceList(this.selectedSubscriptionType);
    }, (err) => {
      console.log(err);
    });
  }


  
  getSubscribedSites() {  
    console.log("on change");
     let httpOptions = {
      headers: new HttpHeaders({
        'Content-Type':  'application/json'
      })
    };
    if (this.selectedServiceInstance) {
      let url = this.baseUrl + "/uui-lcm/Sotnservices/servicesubscription/"+this.selectedSubscriptionType+'/serviceinstance/'+this.selectedServiceInstance;
      this.http.get<any>(url, httpOptions).subscribe((data) => {
        this.assignData(data, false);
      }, (err) => {
        console.log(err);
      });
    }
    else {
      const httpOptions = {
        headers: new HttpHeaders({
         'Content-Type': 'application/json',
        })
      };
      let body = JSON.stringify({}); //this.orderServiceData

      let url = this.baseUrl + "/uui-lcm/Sotnservices/cost";
    return this.http.post<any>(url,body,httpOptions).subscribe((data) => {
        this.assignData(data, true);
      }, (err) => {
        console.log(err);
      });
    }
  }

  assignData(data,isCost) {
    this.summaryInfo = data.service;
    this.mapped = JSON.parse(JSON.stringify(this.summaryInfo));
    delete this.mapped.vpninformations;
    delete this.mapped.vpnInformations;
    this.myKeys = Object.keys(this.mapped);
    this.vpnInfo = this.summaryInfo["parameters"]["requestInputs"]["sotnUnderlay"][0].l2vpn[0];
    this.uniInfo = this.summaryInfo["parameters"]["requestInputs"]["sotnUnderlay"][0].sotnUni;
  }
}