From 41b63c7b40c4de19720f897994864c942b1f5ee5 Mon Sep 17 00:00:00 2001
From: Demian Katz <demian.katz@villanova.edu>
Date: Tue, 28 Jan 2020 15:46:51 -0500
Subject: [PATCH] Tolerate null values for reserves keys.

---
 .../src/VuFindConsole/Controller/UtilController.php      | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/module/VuFindConsole/src/VuFindConsole/Controller/UtilController.php b/module/VuFindConsole/src/VuFindConsole/Controller/UtilController.php
index 644aa0fee48..94c2bbeb2b3 100644
--- a/module/VuFindConsole/src/VuFindConsole/Controller/UtilController.php
+++ b/module/VuFindConsole/src/VuFindConsole/Controller/UtilController.php
@@ -188,12 +188,13 @@ class UtilController extends AbstractBase
     protected function buildReservesIndex($instructors, $courses, $departments,
         $reserves
     ) {
+        $requiredKeys = ['INSTRUCTOR_ID', 'COURSE_ID', 'DEPARTMENT_ID'];
         foreach ($reserves as $record) {
-            if (!isset($record['INSTRUCTOR_ID']) || !isset($record['COURSE_ID'])
-                || !isset($record['DEPARTMENT_ID'])
-            ) {
+            $requiredKeysFound
+                = count(array_intersect(array_keys($record), $requiredKeys));
+            if ($requiredKeysFound < count($requiredKeys)) {
                 throw new \Exception(
-                    'INSTRUCTOR_ID and/or COURSE_ID and/or DEPARTMENT_ID fields ' .
+                    implode(' and/or ', $requiredKeys) . ' fields ' .
                     'not present in reserve records. Please update ILS driver.'
                 );
             }
-- 
GitLab