From 9ad3d13ac853e7b25030088fb55b47c8a2edc362 Mon Sep 17 00:00:00 2001 From: Jim Safley Date: Fri, 15 Dec 2023 16:01:31 -0500 Subject: [PATCH] Return nothing when resource has no subject values --- .../AbstractResourceEntityRepresentation.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/application/src/Api/Representation/AbstractResourceEntityRepresentation.php b/application/src/Api/Representation/AbstractResourceEntityRepresentation.php index 977d6aae9..ec2bc60d3 100644 --- a/application/src/Api/Representation/AbstractResourceEntityRepresentation.php +++ b/application/src/Api/Representation/AbstractResourceEntityRepresentation.php @@ -548,10 +548,19 @@ public function displaySubjectValues(array $options = []) $perPage = $options['perPage'] ?? null; $siteId = $options['siteId'] ?? null; + $subjectValuePropertiesItems = $adapter->getSubjectValueProperties($this->resource, 'items', $siteId); + $subjectValuePropertiesItemSets = $adapter->getSubjectValueProperties($this->resource, 'item_sets', $siteId); + $subjectValuePropertiesMedia = $adapter->getSubjectValueProperties($this->resource, 'media', $siteId); + + if (!$subjectValuePropertiesItems && !$subjectValuePropertiesItemSets && !$subjectValuePropertiesMedia) { + // This resource has no subject values; + return null; + } + $resourcePropertiesAll = [ - 'items' => $adapter->getSubjectValueProperties($this->resource, 'items', $siteId), - 'item_sets' => $adapter->getSubjectValueProperties($this->resource, 'item_sets', $siteId), - 'media' => $adapter->getSubjectValueProperties($this->resource, 'media', $siteId), + 'items' => $subjectValuePropertiesItems, + 'item_sets' => $subjectValuePropertiesItemSets, + 'media' => $subjectValuePropertiesMedia, ]; // Find the default resource property by detecting the first resource // type that has properties.