Updated Control Panel for changed ECS NBI
[portal/nonrtric-controlpanel.git] / webapp-frontend / src / app / services / policy / policy.service.ts
index 5ffff13..028caa0 100644 (file)
  * ========================LICENSE_END===================================
  */
 
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import { Observable } from 'rxjs';
-import { map } from 'rxjs/operators';
-import { CreatePolicyInstance, PolicyInstance, PolicyInstanceAck, PolicyInstances, PolicyStatus, PolicyType, PolicyTypes } from '../../interfaces/policy.types';
-import { ControlpanelSuccessTransport } from '../../interfaces/controlpanel.types';
-import { Ric } from 'src/app/interfaces/ric';
+import { Injectable } from "@angular/core";
+import { HttpClient } from "@angular/common/http";
+import { Observable } from "rxjs";
+import {
+  CreatePolicyInstance,
+  PolicyInstance,
+  PolicyInstanceAck,
+  PolicyInstances,
+  PolicyStatus,
+  PolicyType,
+  PolicyTypes,
+} from "@interfaces/policy.types";
+import { Rics } from "@interfaces/ric";
+import { RicConfig } from "@interfaces/ric.config";
+import { HttpHeaders } from "@angular/common/http";
 
 /**
  * Services for calling the policy endpoints.
  */
 @Injectable({
-    providedIn: 'root'
+  providedIn: "root",
 })
 export class PolicyService {
+  private apiVersion2 = "/v2";
+  private basePath = "/a1-policy";
+  policyTypesPath = "policy-types";
+  policyPath = "policies";
 
-    private apiVersion2 = '/v2'
-    private basePath = '/a1-policy';
-    policyTypesPath = 'policy-types';
-    policyPath = 'policies';
+  private buildPath(...args: any[]) {
+    let result = this.basePath + this.apiVersion2;
+    args.forEach((part) => {
+      result = result + "/" + part;
+    });
+    return result;
+  }
 
-    private buildPath(...args: any[]) {
-        let result = this.basePath + this.apiVersion2;
-        args.forEach(part => {
-            result = result + '/' + part;
-        });
-        return result;
-    }
+  constructor(private httpClient: HttpClient) {
+    // injects to variable httpClient
+  }
 
-    constructor(private httpClient: HttpClient) {
-        // injects to variable httpClient
-    }
+  getPolicyTypes(): Observable<PolicyTypes> {
+    const url = this.buildPath(this.policyTypesPath);
+    return this.httpClient.get<PolicyTypes>(url);
+  }
 
-    getPolicyTypes(): Observable<PolicyTypes> {
-        const url = this.buildPath(this.policyTypesPath);
-        return this.httpClient.get<PolicyTypes>(url);
-    }
+  getPolicyType(policyTypeId: string): Observable<PolicyType> {
+    const url = this.buildPath(this.policyTypesPath + "/" + policyTypeId);
+    return this.httpClient.get<PolicyType>(url);
+  }
 
-    getPolicyType(policyTypeId: string): Observable<PolicyType> {
-        const url = this.buildPath(this.policyTypesPath + '/' + policyTypeId);
-        return this.httpClient.get<PolicyType>(url);
-    }
+  getPolicyInstancesByType(policyTypeId: string): Observable<PolicyInstances> {
+    const url = this.buildPath(
+      this.policyPath + "?" + "policytype_id=" + policyTypeId
+    );
+    return this.httpClient.get<PolicyInstances>(url);
+  }
 
-    getPolicyInstancesByType(policyTypeId: string): Observable<PolicyInstances> {
-        const url = this.buildPath(this.policyPath + '?' + 'policytype_id=' + policyTypeId);
-        return this.httpClient.get<PolicyInstances>(url);
-    }
+  getPolicyInstance(policyId: string): Observable<PolicyInstance> {
+    const url = this.buildPath(this.policyPath) + "/" + policyId;
+    return this.httpClient.get<PolicyInstance>(url);
+  }
 
-    getPolicyInstance(policyId: string): Observable<PolicyInstance> {
-        const url = this.buildPath(this.policyPath) + '/' + policyId;
-        return this.httpClient.get<PolicyInstance>(url);
-    }
+  getPolicyStatus(policyId: string): Observable<PolicyStatus> {
+    const url = this.buildPath(this.policyPath) + "/" + policyId + "/status";
+    return this.httpClient.get<PolicyStatus>(url);
+  }
 
-    getPolicyStatus(policyId: string): Observable<PolicyStatus> {
-        const url = this.buildPath(this.policyPath) + '/' + policyId + '/status';
-        return this.httpClient.get<PolicyStatus>(url);
-    }
+  /**
+   * Creates or replaces policy instance.
+   * @param policyTypeId ID of the policy type that the instance will have
+   * @param policyInstanceId ID of the instance
+   * @param policyJson Json with the policy content
+   * @returns Observable that should yield a response code, no data
+   */
+  putPolicy(createPolicyInstance: CreatePolicyInstance): Observable<any> {
+    const url = this.buildPath(this.policyPath);
+    return this.httpClient.put<PolicyInstanceAck>(url, createPolicyInstance, {
+      observe: "response",
+    });
+  }
 
-    /**
-     * Gets policy parameters.
-     * @returns Observable that should yield a policy instance
-     */
-    getPolicy(policyTypeId: string, policyInstanceId: string): Observable<any> {
-        const url = this.buildPath(this.policyPath, policyInstanceId) + '?type=' + policyTypeId;
-        return this.httpClient.get<any>(url);
-    }
+  /**
+   * Deletes a policy instance.
+   * @param policyTypeId ID of the policy type that the instance belong to
+   * @param policyInstanceId ID of the instance
+   * @returns Observable that should yield a response code, no data
+   */
+  deletePolicy(policyInstanceId: string): Observable<any> {
+    const url = this.buildPath(this.policyPath, policyInstanceId);
+    return this.httpClient.delete(url, { observe: "response" });
+  }
 
-    /**
-     * Creates or replaces policy instance.
-     * @param policyTypeId ID of the policy type that the instance will have
-     * @param policyInstanceId ID of the instance
-     * @param policyJson Json with the policy content
-     * @returns Observable that should yield a response code, no data
-     */
-    putPolicy(createPolicyInstance: CreatePolicyInstance): Observable<any> {
-        const url = this.buildPath(this.policyPath);
-        return this.httpClient.put<PolicyInstanceAck>(url, createPolicyInstance, { observe: 'response' });
-    }
-
-    /**
-     * Deletes a policy instance.
-     * @param policyTypeId ID of the policy type that the instance belong to
-     * @param policyInstanceId ID of the instance
-     * @returns Observable that should yield a response code, no data
-     */
-    deletePolicy(policyInstanceId: string): Observable<any> {
-        const url = this.buildPath(this.policyPath, policyInstanceId);
-        return this.httpClient.delete(url, { observe: 'response' });
-    }
+  getRics(policyTypeId: string): Observable<Rics> {
+    const url = this.buildPath("rics") + "?policytype_id=" + policyTypeId;
+    return this.httpClient.get<any>(url);
+  }
 
+  getConfiguration(): Observable<RicConfig> {
+    const url = this.buildPath("configuration");
+    return this.httpClient.get<RicConfig>(url);
+  }
 
-    getRics(policyTypeId: string): Observable<Ric[]> {
-        const url = this.buildPath('rics') + '?policytype_id=' + policyTypeId;
-        return this.httpClient.get<any>(url);
+  updateConfiguration(ricConfig: RicConfig): Observable<RicConfig> {
+    const httpOptions = {
+      headers: new HttpHeaders({'Content-Type': 'application/json'}),
+      observe: 'response' as 'body'
     }
+    const url = this.buildPath("configuration");
+    return this.httpClient.put<RicConfig>(url, ricConfig, httpOptions);
+  }
 }