From 3fcb58c0814a1793573e3c17c5ce7cbfb016b6ec Mon Sep 17 00:00:00 2001 From: Sami Mokaddem Date: Mon, 13 Feb 2023 15:39:03 +0100 Subject: [PATCH] chg: [brood:queryIndex] Added support of pagination and filtering --- src/Controller/BroodsController.php | 10 ++++++++-- src/Model/Table/BroodsTable.php | 5 ++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Controller/BroodsController.php b/src/Controller/BroodsController.php index 4253cad..c8efcd3 100644 --- a/src/Controller/BroodsController.php +++ b/src/Controller/BroodsController.php @@ -101,8 +101,14 @@ class BroodsController extends AppController if (!in_array($scope, $validScopes)) { throw new MethodNotAllowedException(__('Invalid scope. Valid options are: {0}', implode(', ', $validScopes))); } - $filter = $this->request->getQuery('quickFilter'); - $data = $this->Broods->queryIndex($id, $scope, $filter, true); + $filtering = [ + 'page' => $this->request->getQuery('page', 1), + 'limit' => $this->request->getQuery('limit', 20), + ]; + if (!empty($this->request->getQuery('quickFilter'))) { + $filtering['quickFilter'] = $this->request->getQuery('quickFilter'); + } + $data = $this->Broods->queryIndex($id, $scope, $filtering, true); if (!is_array($data)) { $data = []; } diff --git a/src/Model/Table/BroodsTable.php b/src/Model/Table/BroodsTable.php index ad7c703..851fc89 100644 --- a/src/Model/Table/BroodsTable.php +++ b/src/Model/Table/BroodsTable.php @@ -151,11 +151,10 @@ class BroodsTable extends AppTable if (empty($brood)) { throw new NotFoundException(__('Brood not found')); } - $filterQuery = empty($filter) ? '' : '?quickFilter=' . urlencode($filter); if (!empty($full)) { - $filterQuery .= (empty($filterQuery) ? '?' : '&') . 'full=1'; + $filter['full'] = 1; } - $response = $this->HTTPClientGET(sprintf('/%s/index.json%s', $scope, $filterQuery), $brood); + $response = $this->HTTPClientGET(sprintf('/%s/index.json?%s', $scope, http_build_query($filter)), $brood); if ($response->isOk()) { return $response->getJson(); } else {