From 16a65ee0784b4d43358bbabf5fc11d3b8eff0666 Mon Sep 17 00:00:00 2001
From: Dorian Merz <merz@ub.uni-leipzig.de>
Date: Thu, 19 Aug 2021 10:40:08 +0200
Subject: [PATCH] refs #18611 [finc] EZB resolver call: remove date if in wrong
 format

---
 module/finc/src/finc/Resolver/Driver/Ezb.php | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/module/finc/src/finc/Resolver/Driver/Ezb.php b/module/finc/src/finc/Resolver/Driver/Ezb.php
index 9ba57d4bf14..cdd4277fa89 100644
--- a/module/finc/src/finc/Resolver/Driver/Ezb.php
+++ b/module/finc/src/finc/Resolver/Driver/Ezb.php
@@ -115,6 +115,15 @@ class Ezb extends AbstractBase implements TranslatorAwareInterface
             $parsed[$tmp2[0]] = $tmp2[1];
         }
 
+        // resolver only accepts date formats YYYY, YYYY-MM, and YYYY-MM-DD
+        // in case we have a date in another format, drop the date information
+        if (
+            isset($parsed['rft.date'])
+            && !preg_match('/^\d{4}(-\d\d(-\d\d)?)?$/',$parsed['rft.date'])
+        ) {
+            unset($parsed['rft.date']);
+        }
+
         // Downgrade 1.0 to 0.1
         if ($parsed['ctx_ver'] == 'Z39.88-2004') {
             $openURL = $this->downgradeOpenUrl($parsed);
-- 
GitLab