diff --git a/app/Api/V1/Controllers/Autocomplete/CategoryController.php b/app/Api/V1/Controllers/Autocomplete/CategoryController.php index 9b6d63c75c..f1aed85ceb 100644 --- a/app/Api/V1/Controllers/Autocomplete/CategoryController.php +++ b/app/Api/V1/Controllers/Autocomplete/CategoryController.php @@ -56,7 +56,6 @@ class CategoryController extends Controller } /** - * TODO add limit * @param AutocompleteRequest $request * * @return JsonResponse @@ -64,7 +63,7 @@ class CategoryController extends Controller public function categories(AutocompleteRequest $request): JsonResponse { $data = $request->getData(); - $result = $this->repository->searchCategory($data['query']); + $result = $this->repository->searchCategory($data['query'], $data['limit']); $filtered = $result->map( static function (Category $item) { return [ diff --git a/app/Repositories/Category/CategoryRepository.php b/app/Repositories/Category/CategoryRepository.php index e4e8736586..b0d3b951b0 100644 --- a/app/Repositories/Category/CategoryRepository.php +++ b/app/Repositories/Category/CategoryRepository.php @@ -217,17 +217,18 @@ class CategoryRepository implements CategoryRepositoryInterface /** * @param string $query + * @param int $limit * * @return Collection */ - public function searchCategory(string $query): Collection + public function searchCategory(string $query, int $limit): Collection { $search = $this->user->categories(); if ('' !== $query) { $search->where('name', 'LIKE', sprintf('%%%s%%', $query)); } - return $search->get(); + return $search->take($limit)->get(); } /** diff --git a/app/Repositories/Category/CategoryRepositoryInterface.php b/app/Repositories/Category/CategoryRepositoryInterface.php index 2b7dfddc5d..0b5e7fa9be 100644 --- a/app/Repositories/Category/CategoryRepositoryInterface.php +++ b/app/Repositories/Category/CategoryRepositoryInterface.php @@ -113,10 +113,11 @@ interface CategoryRepositoryInterface /** * @param string $query + * @param int $limit * * @return Collection */ - public function searchCategory(string $query): Collection; + public function searchCategory(string $query, int $limit): Collection; /** * @param User $user diff --git a/app/Support/Search/Search.php b/app/Support/Search/Search.php index eccbe83b57..db36e97cbe 100644 --- a/app/Support/Search/Search.php +++ b/app/Support/Search/Search.php @@ -229,7 +229,7 @@ class Search implements SearchInterface } break; case 'category': - $result = $this->categoryRepository->searchCategory($modifier['value']); + $result = $this->categoryRepository->searchCategory($modifier['value'], 25); if ($result->count() > 0) { $collector->setCategories($result); }