From 892b4eadfc7f7a9631624be55ca0db66d8ecd908 Mon Sep 17 00:00:00 2001 From: Alzpetka Date: Mon, 7 Oct 2024 13:37:29 +0200 Subject: [PATCH] check if doi deleted --- oarepo_doi/api.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/oarepo_doi/api.py b/oarepo_doi/api.py index 7534acd..5bbfd11 100644 --- a/oarepo_doi/api.py +++ b/oarepo_doi/api.py @@ -66,10 +66,9 @@ def edit_doi(service, record, event=None): mapping = obj_or_import_string(service.mapping[record.schema])() doi_value = mapping.get_doi(record) - + if not check_if_correct_doi(doi_value, record): + return if doi_value: - if not check_if_correct_doi(doi_value, record): - return errors = mapping.metadata_check(record) record_service = get_record_service_for_record(record) record["links"] = record_service.links_item_tpl.expand(system_identity, record) @@ -105,6 +104,10 @@ def edit_doi(service, record, event=None): def check_if_correct_doi(value, record): try: doi = PersistentIdentifier.get_by_object('doi', "rec", record.id) #object has no doi in database == doi was added via created form by user + if doi and not value: #doi deleted by user + raise ValidationError( + message="Datacite doi deleted by the user." + ) except PIDDoesNotExistError as e: return False try: