From 4edd1877866428bb1790ba21b26b0323d53bbd77 Mon Sep 17 00:00:00 2001
From: David Maus <maus@hab.de>
Date: Fri, 31 May 2019 11:14:12 +0200
Subject: [PATCH] Gracyfully fail on missing records

---
 .../instance/proxy/opac-de-23/record/index.php  | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/public/instance/proxy/opac-de-23/record/index.php b/public/instance/proxy/opac-de-23/record/index.php
index 08a74b06b..b34f94bb5 100644
--- a/public/instance/proxy/opac-de-23/record/index.php
+++ b/public/instance/proxy/opac-de-23/record/index.php
@@ -24,13 +24,22 @@ function terminate (Request $request, Response $response) {
 }
 
 function load ($ident) {
-    $content = @file_get_contents(sprintf(PSI_TEMPLATE, $ident));
+    $context = stream_context_create(['http' => ['timeout' => 0.5]]);
+    $content = @file_get_contents(sprintf(PSI_TEMPLATE, $ident), false, $context);
     if ($content) {
         $content = normalizer_normalize($content);
-        $reader = new PicaNormReader();
-        $reader->open($content);
-        return $reader->read();
+    } else {
+        $context = <<<CONTENT
+<record xmlns="info:srw/schema/5/picaXML-v1.0">
+  <field tag="003@">
+    <subfield code="0">$ident</subfield>
+  </field>
+</record>
+CONTENT;
     }
+    $reader = new PicaNormReader();
+    $reader->open($content);
+    return $reader->read();
 }
 
 function transform ($sourceUri, $templateUri) {
-- 
GitLab