From 17409c550cf5168d7b8ee1d6e5da6eb274b9ec6a Mon Sep 17 00:00:00 2001 From: bernardhanna Date: Fri, 21 Mar 2025 17:31:49 +0000 Subject: [PATCH] Fix search endpoint response structure to support frontend map and event pagination --- app/Http/Controllers/SearchController.php | 29 ++++++++--------------- 1 file changed, 10 insertions(+), 19 deletions(-) diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php index b8a7dded9..3d49f1b50 100755 --- a/app/Http/Controllers/SearchController.php +++ b/app/Http/Controllers/SearchController.php @@ -4,7 +4,7 @@ * @Author: Bernard Hanna * @Date: 2025-02-13 15:56:27 * @Last Modified by: Bernard Hanna - * @Last Modified time: 2025-03-21 16:24:49 + * @Last Modified time: 2025-03-21 17:31:05 */ @@ -73,23 +73,15 @@ public function searchPOST(EventFilters $filters, Request $request) //Log::info($request->input('page')); if ($request->input('page')) { - $result = [[ - 'data' => $events->items(), - 'per_page' => $events->perPage(), - 'current_page' => $events->currentPage(), - 'from' => $events->firstItem(), - 'last_page' => $events->lastPage(), - 'last_page_url' => $events->url($events->lastPage()), - 'next_page_url' => $events->nextPageUrl(), - 'prev_page' => $events->currentPage() > 1 ? $events->currentPage() - 1 : null, - 'prev_page_url' => $events->previousPageUrl(), - 'to' => $events->lastItem(), - 'total' => $events->total(), - ]]; + $result = [$events]; } else { Log::info('no page'); $eventsMap = $this->getAllEventsToMap($filters); - $result = [[ + $result = [$events, $eventsMap]; + } + + return response()->json([ + 'events' => [ 'data' => $events->items(), 'per_page' => $events->perPage(), 'current_page' => $events->currentPage(), @@ -101,10 +93,9 @@ public function searchPOST(EventFilters $filters, Request $request) 'prev_page_url' => $events->previousPageUrl(), 'to' => $events->lastItem(), 'total' => $events->total(), - ], $eventsMap->toArray()]; - } - - return response()->json($result); + ], + 'map' => isset($eventsMap) ? $eventsMap->toArray() : null + ]); } protected function getEvents(EventFilters $filters)