From 43134fa959fde3d3f33a716a143437d07b33ecea Mon Sep 17 00:00:00 2001 From: gkolokythas Date: Fri, 13 Dec 2019 17:10:21 +0200 Subject: [PATCH] Fixes bug not saving properly new External References on Dataset Description. --- .../eudat/controllers/DataRepositories.java | 6 ++--- .../eudat/controllers/ExternalDatasets.java | 5 ++-- .../java/eu/eudat/controllers/Registries.java | 6 ++--- .../java/eu/eudat/controllers/Services.java | 5 ++-- .../datarepository/DataRepositoryModel.java | 1 + .../models/data/dataset/DataRepository.java | 26 +++++++++++++++++++ .../datasetwizard/DatasetWizardModel.java | 12 ++++----- .../ExternalDatasetListingModel.java | 3 +++ .../externaldataset/ExternalDatasetModel.java | 14 +++++----- .../models/data/registries/RegistryModel.java | 9 +++++++ .../dataset-wizard-editor.model.ts | 8 +++--- ...et-external-references-editor.component.ts | 8 +++--- 12 files changed, 72 insertions(+), 31 deletions(-) diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/DataRepositories.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/DataRepositories.java index cd9589615..f6bfed9d3 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/DataRepositories.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/DataRepositories.java @@ -43,10 +43,10 @@ public class DataRepositories extends BaseController { @Transactional @RequestMapping(method = RequestMethod.POST, consumes = "application/json", produces = "application/json") public @ResponseBody - ResponseEntity> create(@RequestBody eu.eudat.models.data.datarepository.DataRepositoryModel dataRepositoryModel, Principal principal) throws Exception { + ResponseEntity> create(@RequestBody eu.eudat.models.data.datarepository.DataRepositoryModel dataRepositoryModel, Principal principal) throws Exception { DataRepository dataRepository = this.dataRepositoryManager.create(dataRepositoryModel, principal); - return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(dataRepository).status(ApiMessageCode.SUCCESS_MESSAGE)); + DataRepositoryModel dataRepositoryModel1 = new DataRepositoryModel().fromDataModel(dataRepository); + return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(dataRepositoryModel1).status(ApiMessageCode.SUCCESS_MESSAGE)); } - } diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/ExternalDatasets.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/ExternalDatasets.java index 532cacdac..642ff7f60 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/ExternalDatasets.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/ExternalDatasets.java @@ -62,8 +62,9 @@ public class ExternalDatasets extends BaseController { @Transactional @RequestMapping(method = RequestMethod.POST, value = {"/externaldatasets"}, consumes = "application/json", produces = "application/json") public @ResponseBody - ResponseEntity> create(@RequestBody eu.eudat.models.data.externaldataset.ExternalDatasetModel externalDatasetModel, Principal principal) throws Exception { + ResponseEntity> create(@RequestBody eu.eudat.models.data.externaldataset.ExternalDatasetModel externalDatasetModel, Principal principal) throws Exception { ExternalDataset externalDataset = this.externalDatasetManager.create(externalDatasetModel, principal); - return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(externalDataset).status(ApiMessageCode.SUCCESS_MESSAGE)); + ExternalDatasetListingModel externalDatasetListingModel = new ExternalDatasetListingModel().fromDataModel(externalDataset); + return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(externalDatasetListingModel).status(ApiMessageCode.SUCCESS_MESSAGE)); } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/Registries.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/Registries.java index 6289d4f0f..c0a5a58b9 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/Registries.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/Registries.java @@ -42,10 +42,10 @@ public class Registries extends BaseController { @Transactional @RequestMapping(method = RequestMethod.POST, value = {"/registries"}, consumes = "application/json", produces = "application/json") public @ResponseBody - ResponseEntity> create(@RequestBody RegistryModel registryModel, Principal principal) throws Exception { + ResponseEntity> create(@RequestBody RegistryModel registryModel, Principal principal) throws Exception { Registry registry = this.registryManager.create(registryModel, principal); - return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(registry).status(ApiMessageCode.SUCCESS_MESSAGE)); + RegistryModel registryModel1 = new RegistryModel().fromDataModel(registry); + return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(registryModel1).status(ApiMessageCode.SUCCESS_MESSAGE)); } - } diff --git a/dmp-backend/web/src/main/java/eu/eudat/controllers/Services.java b/dmp-backend/web/src/main/java/eu/eudat/controllers/Services.java index 02bfd279e..d24928ca1 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/controllers/Services.java +++ b/dmp-backend/web/src/main/java/eu/eudat/controllers/Services.java @@ -43,9 +43,10 @@ public class Services extends BaseController { @Transactional @RequestMapping(method = RequestMethod.POST, value = {"/services"}, consumes = "application/json", produces = "application/json") public @ResponseBody - ResponseEntity> create(@RequestBody ServiceModel serviceModel, Principal principal) throws Exception { + ResponseEntity> create(@RequestBody ServiceModel serviceModel, Principal principal) throws Exception { Service service = serviceManager.create(serviceModel, principal); - return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(service).status(ApiMessageCode.SUCCESS_MESSAGE)); + ServiceModel serviceModel1 = new ServiceModel().fromDataModel(service); + return ResponseEntity.status(HttpStatus.OK).body(new ResponseItem().payload(serviceModel1).status(ApiMessageCode.SUCCESS_MESSAGE)); } } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/datarepository/DataRepositoryModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/datarepository/DataRepositoryModel.java index 339b6f660..fc8b32c26 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/datarepository/DataRepositoryModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/datarepository/DataRepositoryModel.java @@ -87,6 +87,7 @@ public class DataRepositoryModel implements DataModel, LabelGenerator { + private String id; private String pid; private String name; private String uri; private String info; private String reference; + private String abbreviation; private String tag; private String source; + public String getId() { + return id; + } + public void setId(String id) { + this.id = id; + } + public String getPid() { return pid; } @@ -49,6 +59,13 @@ public class DataRepository implements DataModel new Registry().fromDataModel(item)).collect(Collectors.toList()); this.dataRepositories = entity.getDatasetDataRepositories().stream().map(item -> { DataRepository dataRepository = new DataRepository().fromDataModel(item.getDataRepository()); - if(item.getData()!=null) { + if (item.getData() != null) { Map> data = (Map>) JSONValue.parse(item.getData()); Map values = data.get("data"); dataRepository.setInfo(values.get("info")); @@ -171,7 +171,7 @@ public class DatasetWizardModel implements DataModel { ExternalDatasetListingModel externalDatasetListingModel = new ExternalDatasetListingModel().fromDataModel(item.getExternalDataset()); - if(item.getData()!= null) { + if (item.getData() != null) { Map> data = (Map>) JSONValue.parse(item.getData()); Map values = data.get("data"); externalDatasetListingModel.setInfo(values.get("info")); @@ -214,10 +214,10 @@ public class DatasetWizardModel implements DataModel> data = new HashMap<>(); - Map values = new HashMap<>(); - values.put("info",dataRepositoryModel.getInfo()); - data.put("data",values); + Map> data = new HashMap<>(); + Map values = new HashMap<>(); + values.put("info", dataRepositoryModel.getInfo()); + data.put("data", values); datasetDataRepository.setData(JSONValue.toJSONString(data)); entity.getDatasetDataRepositories().add(datasetDataRepository); } diff --git a/dmp-backend/web/src/main/java/eu/eudat/models/data/externaldataset/ExternalDatasetListingModel.java b/dmp-backend/web/src/main/java/eu/eudat/models/data/externaldataset/ExternalDatasetListingModel.java index 2ffc2c525..f874fa74e 100644 --- a/dmp-backend/web/src/main/java/eu/eudat/models/data/externaldataset/ExternalDatasetListingModel.java +++ b/dmp-backend/web/src/main/java/eu/eudat/models/data/externaldataset/ExternalDatasetListingModel.java @@ -140,6 +140,9 @@ public class ExternalDatasetListingModel implements DataModel { public UUID id; - public String label; + public String name; public String abbreviation; public Date created; public Date modified; @@ -22,11 +22,11 @@ public class ExternalDatasetModel implements DataModel { private String uri; private Date created; private Date modified; + private String reference; private String tag; // Api fetching the data private String source; // Actual harvested source @@ -70,6 +71,13 @@ public class RegistryModel implements DataModel { this.modified = modified; } + public String getReference() { + return reference; + } + public void setReference(String reference) { + this.reference = reference; + } + public String getTag() { return tag; } @@ -106,6 +114,7 @@ public class RegistryModel implements DataModel { } else { this.source = source1; } + this.reference = entity.getReference(); return this; } diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard-editor.model.ts b/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard-editor.model.ts index 24dc41eb6..341e5e2bb 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard-editor.model.ts +++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/dataset-wizard-editor.model.ts @@ -203,7 +203,7 @@ export class ExternalServiceEditorModel { buildForm(context: ValidationContext = null, disabled: boolean = false): FormGroup { return new FormBuilder().group({ id: [this.id], - abbreviation: [this.abbreviation, Validators.required], + abbreviation: [this.abbreviation], label: [this.label, Validators.required], reference: [this.reference], uri: [this.uri, Validators.required], @@ -246,7 +246,7 @@ export class ExternalRegistryEditorModel { buildForm(context: ValidationContext = null, disabled: boolean = false): FormGroup { return new FormBuilder().group({ id: [this.id], - abbreviation: [this.abbreviation, Validators.required], + abbreviation: [this.abbreviation], label: [this.label, Validators.required], reference: [this.reference], uri: [this.uri, Validators.required], @@ -291,7 +291,7 @@ export class ExternalDatasetEditorModel { buildForm(context: ValidationContext = null, disabled: boolean = false): FormGroup { return new FormBuilder().group({ id: [this.id], - abbreviation: [this.abbreviation, Validators.required], + abbreviation: [this.abbreviation], name: [this.name, Validators.required], reference: [this.reference], type: [this.type], @@ -336,7 +336,7 @@ export class ExternalDataRepositoryEditorModel { return new FormBuilder().group({ id: [this.id], name: [this.name, [Validators.required]], - abbreviation: [this.abbreviation, [Validators.required]], + abbreviation: [this.abbreviation], uri: [this.uri, [Validators.required]], info: [this.info], reference: [this.reference], diff --git a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.ts b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.ts index 48d596ead..52f638ae8 100644 --- a/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.ts +++ b/dmp-frontend/src/app/ui/dataset/dataset-wizard/external-references/dataset-external-references-editor.component.ts @@ -139,7 +139,7 @@ export class DatasetExternalReferencesEditorComponent extends BaseComponent impl .pipe(takeUntil(this._destroyed)) .subscribe(result => { if (!result) { return; } - const dataRepositoryModel = new ExternalDataRepositoryEditorModel(result.id, result.name, result.pid, result.uri, result.reference); + const dataRepositoryModel = new ExternalDataRepositoryEditorModel(result.id, result.name, result.abbreviation, result.uri, result.pid, result.source); (this.formGroup.get('dataRepositories')).push(dataRepositoryModel.buildForm()); }); } @@ -154,7 +154,7 @@ export class DatasetExternalReferencesEditorComponent extends BaseComponent impl .pipe(takeUntil(this._destroyed)) .subscribe(result => { if (!result) { return; } - const registryModel = new ExternalRegistryEditorModel(result.abbreviation, result.definition, result.id, result.label, result.reference, result.uri); + const registryModel = new ExternalRegistryEditorModel(result.abbreviation, result.definition, result.id, result.label, result.reference, result.uri, result.source); (this.formGroup.get('registries')).push(registryModel.buildForm()); }); } @@ -169,7 +169,7 @@ export class DatasetExternalReferencesEditorComponent extends BaseComponent impl .pipe(takeUntil(this._destroyed)) .subscribe(result => { if (!result) { return; } - const externalDatasetModel = new ExternalDatasetEditorModel(result.id, result.abbreviation, result.label, result.reference); + const externalDatasetModel = new ExternalDatasetEditorModel(result.id, result.abbreviation, result.name, result.reference, result.source); (this.formGroup.get('externalDatasets')).push(externalDatasetModel.buildForm()); }); } @@ -184,7 +184,7 @@ export class DatasetExternalReferencesEditorComponent extends BaseComponent impl .pipe(takeUntil(this._destroyed)) .subscribe(result => { if (!result) { return; } - const serviceModel = new ExternalServiceEditorModel(result.abbreviation, result.definition, result.id, result.label, result.reference, result.uri); + const serviceModel = new ExternalServiceEditorModel(result.abbreviation, result.definition, result.id, result.label, result.reference, result.uri, result.source); (this.formGroup.get('services')).push(serviceModel.buildForm()); }); }