From acfe3e529c3206974a297e80cbdf047906226b54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Such=C3=A1nek?= Date: Thu, 29 Jun 2023 14:43:39 +0200 Subject: [PATCH] Fix metadata validation on delete --- .../api/controller/metadata/GenericController.java | 2 +- .../service/metadata/catalog/CatalogMetadataService.java | 4 ++-- .../service/metadata/common/AbstractMetadataService.java | 8 +++++--- .../service/metadata/common/MetadataService.java | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/java/nl/dtls/fairdatapoint/api/controller/metadata/GenericController.java b/src/main/java/nl/dtls/fairdatapoint/api/controller/metadata/GenericController.java index 0b2e23d5a..5cb966964 100644 --- a/src/main/java/nl/dtls/fairdatapoint/api/controller/metadata/GenericController.java +++ b/src/main/java/nl/dtls/fairdatapoint/api/controller/metadata/GenericController.java @@ -283,7 +283,7 @@ public ResponseEntity updateMetaData( } // 4. Store metadata - final Model metadata = metadataService.update(reqDto, uri, rd); + final Model metadata = metadataService.update(reqDto, uri, rd, true); // 5. Invalidate search filters cache searchFilterCache.clearCache(); diff --git a/src/main/java/nl/dtls/fairdatapoint/service/metadata/catalog/CatalogMetadataService.java b/src/main/java/nl/dtls/fairdatapoint/service/metadata/catalog/CatalogMetadataService.java index ef632406f..2b22923f4 100644 --- a/src/main/java/nl/dtls/fairdatapoint/service/metadata/catalog/CatalogMetadataService.java +++ b/src/main/java/nl/dtls/fairdatapoint/service/metadata/catalog/CatalogMetadataService.java @@ -71,9 +71,9 @@ public Model store( @Override public Model update( - Model metadata, IRI uri, ResourceDefinition resourceDefinition + Model metadata, IRI uri, ResourceDefinition resourceDefinition, boolean validate ) throws MetadataServiceException { setThemeTaxonomies(metadata, uri, null); - return super.update(metadata, uri, resourceDefinition); + return super.update(metadata, uri, resourceDefinition, validate); } } diff --git a/src/main/java/nl/dtls/fairdatapoint/service/metadata/common/AbstractMetadataService.java b/src/main/java/nl/dtls/fairdatapoint/service/metadata/common/AbstractMetadataService.java index 96925e2b8..8ea4b3bdf 100644 --- a/src/main/java/nl/dtls/fairdatapoint/service/metadata/common/AbstractMetadataService.java +++ b/src/main/java/nl/dtls/fairdatapoint/service/metadata/common/AbstractMetadataService.java @@ -141,10 +141,12 @@ public Model store( or hasRole('ADMIN') """) public Model update( - Model metadata, IRI uri, ResourceDefinition resourceDefinition + Model metadata, IRI uri, ResourceDefinition resourceDefinition, boolean validate ) throws MetadataServiceException { try { - metadataValidator.validate(metadata, uri, resourceDefinition); + if (validate) { + metadataValidator.validate(metadata, uri, resourceDefinition); + } final Model oldMetadata = retrieve(uri); metadataEnhancer.enhance(metadata, uri, resourceDefinition, oldMetadata); metadataRepository.remove(uri); @@ -185,7 +187,7 @@ public void delete(IRI uri, ResourceDefinition rd) throws MetadataServiceExcepti for (ResourceDefinitionChild rdChild : rdParent.getChildren()) { if (rdChild.getResourceDefinitionUuid().equals(rd.getUuid())) { parentMetadata.remove(null, i(rdChild.getRelationUri()), uri); - update(parentMetadata, parentUri, rdParent); + update(parentMetadata, parentUri, rdParent, false); } } } diff --git a/src/main/java/nl/dtls/fairdatapoint/service/metadata/common/MetadataService.java b/src/main/java/nl/dtls/fairdatapoint/service/metadata/common/MetadataService.java index 54a60c748..7e106561a 100644 --- a/src/main/java/nl/dtls/fairdatapoint/service/metadata/common/MetadataService.java +++ b/src/main/java/nl/dtls/fairdatapoint/service/metadata/common/MetadataService.java @@ -41,7 +41,7 @@ Model store( ) throws MetadataServiceException; Model update( - Model model, IRI uri, ResourceDefinition resourceDefinition + Model model, IRI uri, ResourceDefinition resourceDefinition, boolean validate ) throws MetadataServiceException; void delete(IRI uri, ResourceDefinition resourceDefinition) throws MetadataServiceException;