From b4d9e7315e877f516a1828a9b82ad98026573809 Mon Sep 17 00:00:00 2001
From: "michele.artini"
Date: Thu, 19 Oct 2023 09:59:17 +0200
Subject: [PATCH] OAI error message
---
.../eu/dnetlib/apps/oai/service/CollectorService.java | 10 +++++++++-
src/main/resources/templates/email/success.html | 1 +
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/main/java/eu/dnetlib/apps/oai/service/CollectorService.java b/src/main/java/eu/dnetlib/apps/oai/service/CollectorService.java
index d478c5b..a0dc8be 100644
--- a/src/main/java/eu/dnetlib/apps/oai/service/CollectorService.java
+++ b/src/main/java/eu/dnetlib/apps/oai/service/CollectorService.java
@@ -139,6 +139,14 @@ public class CollectorService {
final String xml = HttpFetcher.download(call);
final Document doc = DocumentHelper.parseText(xml);
+ final Node errorNode = doc.selectSingleNode("/*[local-name()='OAI-PMH']/*[local-name()='error']");
+ if (errorNode != null) {
+ final String errorCode = errorNode.valueOf("@code");
+ final String errorMessage = errorNode.getText();
+ call.setNumberOfRecords(0);
+ throw new IllegalArgumentException(errorCode + " - " + errorMessage);
+ }
+
final List records = doc.selectNodes("//*[local-name()='ListRecords']/*[local-name()='record']");
call.setNumberOfRecords(records.size());
@@ -155,7 +163,7 @@ public class CollectorService {
final String rtoken = doc.valueOf("//*[local-name()='resumptionToken']").trim();
url = SimpleUtils.oaiNextUrl(baseUrl, rtoken);
} else {
- url = "";
+ url = null;
}
}
}
diff --git a/src/main/resources/templates/email/success.html b/src/main/resources/templates/email/success.html
index 2643998..ed2a06a 100644
--- a/src/main/resources/templates/email/success.html
+++ b/src/main/resources/templates/email/success.html
@@ -11,6 +11,7 @@
I am writing to inform you that your request to collect metadata from the provided URL has been completed successfully.
Request ID:
URL:
+ Collected Records: