From 90d7b7626ffdd9571cbc78cbdd114cf216adda44 Mon Sep 17 00:00:00 2001 From: "michele.artini" Date: Thu, 2 Feb 2023 14:26:53 +0100 Subject: [PATCH] add API model --- .../src/app/common/is.model.ts | 17 ++++++++++ .../src/app/dsm/dsm.component.ts | 31 ++++++++++++++++--- 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/frontends/dnet-is-application/src/app/common/is.model.ts b/frontends/dnet-is-application/src/app/common/is.model.ts index 9440b454..9158ee97 100644 --- a/frontends/dnet-is-application/src/app/common/is.model.ts +++ b/frontends/dnet-is-application/src/app/common/is.model.ts @@ -112,6 +112,23 @@ export interface Api { aggrTotal: number } +export interface ApiParam { + param:string, + value:string +} + +export interface ApiInsert { + id: string, + protocol: string, + datasource: string, + contentdescription: string, + removable: boolean, + compatibility: string, + metadataIdentifierPath: string, + baseurl: string, + apiParams: ApiParam[] +}; + export interface Organization { name:string, country:string diff --git a/frontends/dnet-is-application/src/app/dsm/dsm.component.ts b/frontends/dnet-is-application/src/app/dsm/dsm.component.ts index eb25cb23..153c2119 100644 --- a/frontends/dnet-is-application/src/app/dsm/dsm.component.ts +++ b/frontends/dnet-is-application/src/app/dsm/dsm.component.ts @@ -1,5 +1,5 @@ import { Component, Inject, OnInit, ViewChild } from '@angular/core'; -import { Page, BrowseTerm, Datasource, KeyValue, DsmConf, ProtocolParam } from '../common/is.model'; +import { Page, BrowseTerm, Datasource, KeyValue, DsmConf, ProtocolParam, Api, ApiInsert } from '../common/is.model'; import { ISService } from '../common/is.service'; import { ActivatedRoute, Params } from '@angular/router'; import { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; @@ -165,6 +165,7 @@ export class DsmAddApiDialog { selectedProtocol:string = ''; apiPrefix:string = ''; + paramPrefix:string = '__PARAM_'; protocols:string[] = []; compatibilityLevels:string[] = []; @@ -172,7 +173,6 @@ export class DsmAddApiDialog { protocolsMap:any = {}; selProtParams:ProtocolParam[] = []; - paramPrefix:string = '__PARAM_'; apiIdControl = new FormControl('', [Validators.required]); addApiForm:FormGroup = new FormGroup({ @@ -214,10 +214,31 @@ export class DsmAddApiDialog { } onSubmit():void { - //const api = this.addApiForm.value; - //api.apiId = this.apiPrefix + api.apiId; IMPORTANT + let api:ApiInsert = { + id: this.apiPrefix + this.apiIdControl.value, + protocol: this.selectedProtocol, + datasource: this.data.dsId, + contentdescription: this.addApiForm.get('contentdescription')?.value, + removable: true, + compatibility: this.addApiForm.get('compatibility')?.value, + metadataIdentifierPath: this.addApiForm.get('metadataIdentifierPath')?.value, + baseurl: this.addApiForm.get('baseurl')?.value, + apiParams : [] + }; + + Object.keys(this.addApiForm.controls).forEach(k => { + if (k.startsWith(this.paramPrefix)) { + let val = this.addApiForm.get(k)?.value; + if (val) { + api.apiParams.push({ + param: k.substring(this.paramPrefix.length), + value: val + }); + } + } + }); + console.log(api); //this.service.dsmAddApi(api, (data: void) => this.dialogRef.close(1), this.metadataForm); - console.log(this.addApiForm.value); } onNoClick(): void {