From 55b32bcfa557675d08eecd1bd70b712cee89e64e Mon Sep 17 00:00:00 2001 From: Bryce Meyer Date: Thu, 10 Jul 2025 23:05:19 +0200 Subject: [PATCH] opened search capabilities a bit --- .../Collection/CollectionItem/IndexRequest.php | 2 ++ .../Middleware/SearchFilterParsingMiddleware.php | 12 +++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/code/app/Athenia/Http/Core/Requests/Collection/CollectionItem/IndexRequest.php b/code/app/Athenia/Http/Core/Requests/Collection/CollectionItem/IndexRequest.php index 677e2d50..e629859f 100644 --- a/code/app/Athenia/Http/Core/Requests/Collection/CollectionItem/IndexRequest.php +++ b/code/app/Athenia/Http/Core/Requests/Collection/CollectionItem/IndexRequest.php @@ -57,6 +57,8 @@ public function allowedExpands(): array { return [ 'collectionItemCategories', + 'collectionItemCategories.category', + 'item', ]; } } \ No newline at end of file diff --git a/code/app/Athenia/Http/Middleware/SearchFilterParsingMiddleware.php b/code/app/Athenia/Http/Middleware/SearchFilterParsingMiddleware.php index e96f5085..f9cb1538 100644 --- a/code/app/Athenia/Http/Middleware/SearchFilterParsingMiddleware.php +++ b/code/app/Athenia/Http/Middleware/SearchFilterParsingMiddleware.php @@ -43,7 +43,13 @@ public function handle($request, Closure $next) if ($filters = $request->query('filter')) { if (is_array($filters)) { foreach ($filters as $key => $value) { - $cleanedFilter = $this->processQueryEntry($cleanedFilter, $key, $value); + if (is_array($value)) { + foreach ($value as $individualFilter) { + $cleanedFilter = $this->processQueryEntry($cleanedFilter, $key, $individualFilter); + } + } else { + $cleanedFilter = $this->processQueryEntry($cleanedFilter, $key, $value); + } } } } @@ -56,14 +62,11 @@ public function handle($request, Closure $next) if ($search = $request->query('search')) { if (is_array($search)) { foreach ($search as $key => $searchTermContainer) { - if (is_array($searchTermContainer)) { - foreach ($searchTermContainer as $individualSearch) { $cleanedSearch = $this->processQueryEntry($cleanedSearch, $key, $individualSearch); } } else { - $cleanedSearch = $this->processQueryEntry($cleanedSearch, $key, $searchTermContainer); } } @@ -110,7 +113,6 @@ private function processQueryEntry($currentQuery, $key, $value): array $currentQuery[] = [$key, $searchType, $searchTerm]; } else { - $searchTerm = $parts[1]; switch ($parts[0]) {