X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=webapp-frontend%2Fsrc%2Fapp%2Fpolicy-control%2Fno-type-policy-instance-dialog.component.ts;h=1d525c2868db7e78fb18f07eb67e497789e391f5;hb=refs%2Fchanges%2F85%2F5685%2F1;hp=66dcfb7305a8c12ad5815bf31b7820ab74dc3a20;hpb=e3606a283375b6a0daceda75ea2b7942363cead1;p=portal%2Fnonrtric-controlpanel.git diff --git a/webapp-frontend/src/app/policy-control/no-type-policy-instance-dialog.component.ts b/webapp-frontend/src/app/policy-control/no-type-policy-instance-dialog.component.ts index 66dcfb7..1d525c2 100644 --- a/webapp-frontend/src/app/policy-control/no-type-policy-instance-dialog.component.ts +++ b/webapp-frontend/src/app/policy-control/no-type-policy-instance-dialog.component.ts @@ -19,17 +19,18 @@ */ import { Component, Inject, OnInit } from '@angular/core'; import { FormControl, FormGroup, Validators, ValidatorFn, AbstractControl } from '@angular/forms'; -import { MAT_DIALOG_DATA } from '@angular/material/dialog'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { PolicyService } from '../services/policy/policy.service'; import { NotificationService } from '../services/ui/notification.service'; import { UiService } from '../services/ui/ui.service'; import { HttpErrorResponse } from '@angular/common/http'; import { ErrorDialogService } from '../services/ui/error-dialog.service'; import * as uuid from 'uuid'; -import { Ric } from '../interfaces/ric'; +import { Rics } from '../interfaces/ric'; +import { CreatePolicyInstance } from '../interfaces/policy.types'; @Component({ - selector: 'rd-no-type-policy-instance-dialog', + selector: 'nrcp-no-type-policy-instance-dialog', templateUrl: './no-type-policy-instance-dialog.component.html', styleUrls: ['./no-type-policy-instance-dialog.component.scss'] }) @@ -40,9 +41,10 @@ export class NoTypePolicyInstanceDialogComponent implements OnInit { policyJson: string; darkMode: boolean; ric: string; - allRics: Ric[]; + allRicIds: string[] = []; constructor( + public dialogRef: MatDialogRef, private policySvc: PolicyService, private errorService: ErrorDialogService, private notificationService: NotificationService, @@ -67,7 +69,7 @@ export class NoTypePolicyInstanceDialogComponent implements OnInit { ]) }); if (!this.policyInstanceId) { - this.fetchRics(); + this.getRicIds(); } } @@ -80,10 +82,12 @@ export class NoTypePolicyInstanceDialogComponent implements OnInit { this.policyInstanceId = uuid.v4(); } const self: NoTypePolicyInstanceDialogComponent = this; - this.policySvc.putPolicy('', this.policyInstanceId, this.policyJsonTextArea.value, this.ric).subscribe( + let createPolicyInstance: CreatePolicyInstance = this.createPolicyInstance(this.policyJsonTextArea.value); + this.policySvc.putPolicy(createPolicyInstance).subscribe( { next(_) { self.notificationService.success('Policy without type:' + self.policyInstanceId + ' submitted'); + self.dialogRef.close(); }, error(error: HttpErrorResponse) { self.errorService.displayError('Submit failed: ' + error.error); @@ -92,22 +96,29 @@ export class NoTypePolicyInstanceDialogComponent implements OnInit { }); } - private fetchRics() { + private createPolicyInstance(policyJson: string): CreatePolicyInstance { + let createPolicyInstance = {} as CreatePolicyInstance; + createPolicyInstance.policy_data = JSON.parse(policyJson); + createPolicyInstance.policy_id = this.policyInstanceId; + createPolicyInstance.policytype_id = ''; + createPolicyInstance.ric_id = (!this.ricSelector.value.ric_id) ? this.ric : this.ricSelector.value.ric_id; + createPolicyInstance.service_id = 'controlpanel'; + return createPolicyInstance; + } + + getRicIds() { const self: NoTypePolicyInstanceDialogComponent = this; this.policySvc.getRics('').subscribe( { - next(value:Ric[]) { - self.allRics = value; - console.log(value); - }, - error(error: HttpErrorResponse) { - self.errorService.displayError('Fetching of rics failed: ' + error.message); - }, - complete() { } + next(value: Rics) { + value.rics.forEach(ric => { + self.allRicIds.push(ric.ric_id); + }); + } }); } - private formatJsonString(jsonToFormat: any) { + private formatJsonString(jsonToFormat: any): string { return JSON.stringify(jsonToFormat, null, 2); } @@ -123,11 +134,13 @@ export function jsonValidator(): ValidatorFn { }; } -export function isJsonValid(json: string) { +export function isJsonValid(json: string): boolean { try { if (json != null) { JSON.parse(json); return true; + } else { + return false; } } catch (jsonError) { return false;