summaryrefslogtreecommitdiff
path: root/src/main/java/dev/dnpm
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/dev/dnpm')
-rw-r--r--src/main/java/dev/dnpm/etl/processor/consent/GicsConsentService.java13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/dev/dnpm/etl/processor/consent/GicsConsentService.java b/src/main/java/dev/dnpm/etl/processor/consent/GicsConsentService.java
index 35fc3be..4c8e820 100644
--- a/src/main/java/dev/dnpm/etl/processor/consent/GicsConsentService.java
+++ b/src/main/java/dev/dnpm/etl/processor/consent/GicsConsentService.java
@@ -380,6 +380,19 @@ public class GicsConsentService extends AbstractConsentService {
private static void hashBundleEntry(Bundle.BundleEntryComponent entry) {
String id = entry.getResource().getIdPart();
+
+ // Extract ID from FullUrl if ID is blank
+ if (id.isBlank() && entry.getFullUrl() != null && entry.getFullUrl().contains("/")) {
+ final var fullUrl = entry.getFullUrl();
+ id = fullUrl.substring(fullUrl.lastIndexOf("/") + 1);
+ }
+
+ // Still no ID found, skip processing - no hashing possible.
+ // DNPM:DIP might not validate this bundle in later versions
+ if (id.isBlank()) {
+ return;
+ }
+
var hash = DigestUtils.sha256Hex("%s_%s".formatted(Random.Default.toString(), id));
entry.getResource().setId(hash);