/* Copyright (C) 2019 CMCC, Inc. and others. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http'; import { baseUrl } from '../models/dataInterface'; @Injectable() export class networkHttpservice { constructor(private http: HttpClient) { } baseUrl = baseUrl.baseUrl;//Online environment url = { "getNetworkD3Data": "/uui-sotn/getNetWorkResources", "getLogicalLinksData": "/uui-sotn/getLogicalLinks", "deleteCloud": "/uui-sotn/deleteExtNetWork", "getPInterfacesData": "/uui-sotn/getPinterfaceByPnfName/", "createLink": "/uui-sotn/createLink/", "querySpecificLinkInfo": "/uui-sotn/getSpecificLogicalLink/", "queryCloudUrl": "/uui-sotn/getHostUrl/", "queryExtAAIIdVersion": "/uui-sotn/getExtAaiId/", "createNetwrok": "/uui-sotn/createTopoNetwork/", "createPnf": "/uui-sotn/createPnf/", "createTp": "/uui-sotn/pnf/", "createCloudLink": "/uui-sotn/createLink/", "createCloudUrl": "/uui-sotn/createHostUrl/", "deleteLink": "/uui-sotn/deleteLink/", }; //The following APIs function are optimizable------------------------ //d3data getNetworkD3Data() { return this.http.get(this.url["getNetworkD3Data"]); } //Initialize the connection logical-links getLogicalLinksData() { return this.http.get(this.url["getLogicalLinksData"]); } deleteCloudLink(paramsObj) { let params = new HttpParams({ fromObject: paramsObj }); return this.http.delete(this.url["deleteCloud"],{params}); } //The following APIs function are not optimizable------------------------ //Query the tp data corresponding to the specified node getPInterfacesData(paramsObj) { return this.http.get(this.url['getPInterfacesData'] + paramsObj["pnfName"]); } //Create a connection interface createLink(paramsObj) { return this.http.put(this.url["createLink"] + paramsObj["link-name"], paramsObj); } //Query the specified single cable interface querySpecificLinkInfo(paramsObj) { return this.http.get(this.url["querySpecificLinkInfo"] + paramsObj["link-name"]); } //Query external cloud host this.url address interface queryCloudUrl(aaiId) { return this.http.get(this.url["queryCloudUrl"] + aaiId); } queryExtAAIIdVersion(aaiId) { return this.http.get(this.url["queryExtAAIIdVersion"] + aaiId); } //Create an external cloud newwork interface createNetwrok(paramsObj) { return this.http.put(this.url["createNetwrok"] + paramsObj["network-id"], paramsObj); } //Create an external cloud pnf interface createPnf(paramsObj) { return this.http.put(this.url["createPnf"] + paramsObj["pnf-name"], paramsObj); } //Create an external cloud Tp interface createTp(paramsObj, cloudNodeName) { let str = cloudNodeName + "/p-interfaces/p-interface/" + paramsObj["interface-name"] + "/createTerminationPoint"; return this.http.put(this.url["createTp"] + str, paramsObj); } //Create an external cloud link interface createCloudLink(paramsObj) { return this.http.put(this.url["createCloudLink"] + paramsObj["link-name"], paramsObj); } //Create an external cloud host url interface createCloudUrl(paramsObj) { return this.http.put(this.url["createCloudUrl"] + paramsObj["aai-id"], paramsObj); } //Delete connection deleteLink(paramsObj) { let str = paramsObj["logical-link"] + "/" + paramsObj["resource-version"]; return this.http.delete((this.url["deleteLink"] + str)); } }