From 2900b91163b97b9718d0b01043111d1d8a6e1b05 Mon Sep 17 00:00:00 2001 From: Kodi Date: Thu, 8 Oct 2026 13:40:08 -0700 Subject: [PATCH] DIS-3034: CloudSource User List Indexing Found an error while indexing a list with CloudSource titles Looks like I forgot to add the function to grab the title/author while indexing This remedies that :) Update release notes Tested on my local instance of Aspen --- code/web/release_notes/26.11.00/DIS-3034.yaml | 12 ++++++++++++ code/web/services/CloudSource/JSON.php | 19 +++++++++++++++++++ .../sys/SearchObject/CloudSourceSearcher.php | 3 ++- 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 code/web/release_notes/26.11.00/DIS-3034.yaml diff --git a/code/web/release_notes/26.11.00/DIS-3034.yaml b/code/web/release_notes/26.11.00/DIS-3034.yaml new file mode 100644 index 00000000000..0c05232117c --- /dev/null +++ b/code/web/release_notes/26.11.00/DIS-3034.yaml @@ -0,0 +1,12 @@ +Jira: DIS-3034 +Type: Bug +Developer: Kodi Lein (KL) +Contributing Org: Grove For Libraries +Sponsor: +GroveRelease: 26.11.00 +CommunityRelease: 26.12.00 +Component: CloudSource OA +Description: + - Fix issue indexing user lists with CloudSource OA entries that would throw an exception. +New Settings: +New Permissions: \ No newline at end of file diff --git a/code/web/services/CloudSource/JSON.php b/code/web/services/CloudSource/JSON.php index 83cc14e013f..d1eda0df14e 100644 --- a/code/web/services/CloudSource/JSON.php +++ b/code/web/services/CloudSource/JSON.php @@ -64,4 +64,23 @@ public function trackCloudSourceUsage(): array { 'message' => 'Updated usage for CloudSource record ' . $id, ]; } + + function getTitleAuthor(): array { + $result = [ + 'success' => false, + 'title' => 'Unknown', + 'author' => 'Unknown', + ]; + require_once ROOT_DIR . '/RecordDrivers/CloudSourceRecordDriver.php'; + $id = $_REQUEST['id']; + if (!empty($id)) { + $recordDriver = new CloudSourceRecordDriver($id); + if ($recordDriver->isValid()) { + $result['success'] = true; + $result['title'] = $recordDriver->getTitle(); + $result['author'] = $recordDriver->getAuthor(); + } + } + return $result; + } } \ No newline at end of file diff --git a/code/web/sys/SearchObject/CloudSourceSearcher.php b/code/web/sys/SearchObject/CloudSourceSearcher.php index 069291d371e..2ec312a5ba4 100644 --- a/code/web/sys/SearchObject/CloudSourceSearcher.php +++ b/code/web/sys/SearchObject/CloudSourceSearcher.php @@ -243,12 +243,13 @@ public function processSearch($returnIndexErrors = false, $recommendations = fal //Retreive a specific record - used to retreive bookcovers public function retrieveRecord($id, $index = null) { + $sessionCookie = $_COOKIE['aspen_session'] ?? null; $settings = $this->getSettings(); //CloudSource uses access tokens for authorization, no other auth process $headers = [ 'Content-Type: application/vnd.sirsidynix.roa.roaobject.v2+json', 'BCWS-Access-Token: ' . $settings->accessToken, - 'SD-Stats-Session-ID: ' . $_COOKIE['aspen_session'] + 'SD-Stats-Session-ID: ' . $sessionCookie ]; $baseUrl = $settings->apiUrl . '/api/cloudsourcesearch/search/id/' . $index . '/' . $id;