From bc77d1469e30034769422f30067bea4381651477 Mon Sep 17 00:00:00 2001 From: southeo Date: Tue, 16 Apr 2024 16:02:27 +0200 Subject: [PATCH 1/3] logging --- .../java/eu/dissco/core/handlemanager/service/DoiService.java | 2 +- .../eu/dissco/core/handlemanager/service/FdoRecordService.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/eu/dissco/core/handlemanager/service/DoiService.java b/src/main/java/eu/dissco/core/handlemanager/service/DoiService.java index d3895c24..3e165829 100644 --- a/src/main/java/eu/dissco/core/handlemanager/service/DoiService.java +++ b/src/main/java/eu/dissco/core/handlemanager/service/DoiService.java @@ -73,7 +73,7 @@ public JsonApiWrapperWrite updateRecords(List requests, boolean increm var types = requests.stream() .map(request -> request.get(NODE_DATA).get(NODE_TYPE).asText()) .filter(type -> !type.equals(MEDIA_OBJECT.toString()) - || !type.equals(DIGITAL_SPECIMEN.toString())) + && !type.equals(DIGITAL_SPECIMEN.toString())) .collect(Collectors.toSet()); if (!types.isEmpty()) { diff --git a/src/main/java/eu/dissco/core/handlemanager/service/FdoRecordService.java b/src/main/java/eu/dissco/core/handlemanager/service/FdoRecordService.java index 06f1a497..bbec0768 100644 --- a/src/main/java/eu/dissco/core/handlemanager/service/FdoRecordService.java +++ b/src/main/java/eu/dissco/core/handlemanager/service/FdoRecordService.java @@ -574,7 +574,8 @@ private HandleAttribute setHostName(String hostName, String hostId, byte[] handl } return new HandleAttribute(targetAttribute, handle, hostNameResolved); } else { - throw new PidResolutionException("Specimen host ID {} is neither QID nor ROR."); + log.error("Specimen host ID {} is neither QID nor ROR.", hostId); + throw new PidResolutionException("Invalid host id: " + hostId); } } catch (UnprocessableEntityException | InvalidRequestException | PidResolutionException e) { From ff0fd1960dc8eb299c8fb9e6d3a6ce71d52ad7c1 Mon Sep 17 00:00:00 2001 From: southeo Date: Tue, 16 Apr 2024 16:03:59 +0200 Subject: [PATCH 2/3] logging --- .../eu/dissco/core/handlemanager/service/FdoRecordService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/eu/dissco/core/handlemanager/service/FdoRecordService.java b/src/main/java/eu/dissco/core/handlemanager/service/FdoRecordService.java index bbec0768..b90d8c9a 100644 --- a/src/main/java/eu/dissco/core/handlemanager/service/FdoRecordService.java +++ b/src/main/java/eu/dissco/core/handlemanager/service/FdoRecordService.java @@ -137,6 +137,7 @@ public class FdoRecordService { private static final String DOI_DOMAIN = "https://doi.org/"; private static final String ROR_API_DOMAIN = "https://api.ror.org/organizations/"; private static final String ROR_DOMAIN = "https://ror.org/"; + private static final String WIKIDATA_DOMAIN = "wikidata.org"; private static final String WIKIDATA_API = "https://wikidata.org/w/rest.php/wikibase/v0/entities/items/"; private static final String PROXY_ERROR = "Invalid attribute: %s must contain proxy: %s"; private static final String PID_KERNEL_METADATA_LICENSE = "https://creativecommons.org/publicdomain/zero/1.0/"; @@ -588,7 +589,7 @@ private HandleAttribute setHostName(String hostName, String hostId, byte[] handl } private boolean isAcceptedSpecimenHostId(String id) { - return (id.contains(ROR_DOMAIN) || id.toLowerCase().charAt(0) == 'q'); + return (id.contains(ROR_DOMAIN) || id.contains(WIKIDATA_DOMAIN)); } public List prepareUpdateAttributes(byte[] handle, JsonNode requestAttributes, From 8936b2907cc29e7e7213a71e185ec4ff20c2aa74 Mon Sep 17 00:00:00 2001 From: southeo Date: Tue, 16 Apr 2024 16:06:49 +0200 Subject: [PATCH 3/3] set wikidata domain --- .../eu/dissco/core/handlemanager/service/FdoRecordService.java | 2 +- .../dissco/core/handlemanager/service/FdoRecordServiceTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/eu/dissco/core/handlemanager/service/FdoRecordService.java b/src/main/java/eu/dissco/core/handlemanager/service/FdoRecordService.java index b90d8c9a..39b860c0 100644 --- a/src/main/java/eu/dissco/core/handlemanager/service/FdoRecordService.java +++ b/src/main/java/eu/dissco/core/handlemanager/service/FdoRecordService.java @@ -137,7 +137,7 @@ public class FdoRecordService { private static final String DOI_DOMAIN = "https://doi.org/"; private static final String ROR_API_DOMAIN = "https://api.ror.org/organizations/"; private static final String ROR_DOMAIN = "https://ror.org/"; - private static final String WIKIDATA_DOMAIN = "wikidata.org"; + private static final String WIKIDATA_DOMAIN = "https://wikidata.org"; private static final String WIKIDATA_API = "https://wikidata.org/w/rest.php/wikibase/v0/entities/items/"; private static final String PROXY_ERROR = "Invalid attribute: %s must contain proxy: %s"; private static final String PID_KERNEL_METADATA_LICENSE = "https://creativecommons.org/publicdomain/zero/1.0/"; diff --git a/src/test/java/eu/dissco/core/handlemanager/service/FdoRecordServiceTest.java b/src/test/java/eu/dissco/core/handlemanager/service/FdoRecordServiceTest.java index 70c2257d..ca0a695f 100644 --- a/src/test/java/eu/dissco/core/handlemanager/service/FdoRecordServiceTest.java +++ b/src/test/java/eu/dissco/core/handlemanager/service/FdoRecordServiceTest.java @@ -382,7 +382,7 @@ void testPrepareDigitalSpecimenRecordMandatoryAttributes() throws Exception { @Test void testPrepareDigitalSpecimenRecordMandatoryAttributesQNumber() throws Exception { // Given - String qid = "Q12345"; + String qid = "https://wikidata.org/Q12345"; String qidUrl = "https://wikidata.org/w/rest.php/wikibase/v0/entities/items/" + qid; given(pidResolver.getObjectName(any())).willReturn("placeholder"); given(pidResolver.resolveQid(any())).willReturn("placeholder");