Add limit to category #3150

This commit is contained in:
James Cole
2020-07-21 06:24:49 +02:00
parent 723696b971
commit 74ed80aaef
4 changed files with 7 additions and 6 deletions

View File

@@ -56,7 +56,6 @@ class CategoryController extends Controller
} }
/** /**
* TODO add limit
* @param AutocompleteRequest $request * @param AutocompleteRequest $request
* *
* @return JsonResponse * @return JsonResponse
@@ -64,7 +63,7 @@ class CategoryController extends Controller
public function categories(AutocompleteRequest $request): JsonResponse public function categories(AutocompleteRequest $request): JsonResponse
{ {
$data = $request->getData(); $data = $request->getData();
$result = $this->repository->searchCategory($data['query']); $result = $this->repository->searchCategory($data['query'], $data['limit']);
$filtered = $result->map( $filtered = $result->map(
static function (Category $item) { static function (Category $item) {
return [ return [

View File

@@ -217,17 +217,18 @@ class CategoryRepository implements CategoryRepositoryInterface
/** /**
* @param string $query * @param string $query
* @param int $limit
* *
* @return Collection * @return Collection
*/ */
public function searchCategory(string $query): Collection public function searchCategory(string $query, int $limit): Collection
{ {
$search = $this->user->categories(); $search = $this->user->categories();
if ('' !== $query) { if ('' !== $query) {
$search->where('name', 'LIKE', sprintf('%%%s%%', $query)); $search->where('name', 'LIKE', sprintf('%%%s%%', $query));
} }
return $search->get(); return $search->take($limit)->get();
} }
/** /**

View File

@@ -113,10 +113,11 @@ interface CategoryRepositoryInterface
/** /**
* @param string $query * @param string $query
* @param int $limit
* *
* @return Collection * @return Collection
*/ */
public function searchCategory(string $query): Collection; public function searchCategory(string $query, int $limit): Collection;
/** /**
* @param User $user * @param User $user

View File

@@ -229,7 +229,7 @@ class Search implements SearchInterface
} }
break; break;
case 'category': case 'category':
$result = $this->categoryRepository->searchCategory($modifier['value']); $result = $this->categoryRepository->searchCategory($modifier['value'], 25);
if ($result->count() > 0) { if ($result->count() > 0) {
$collector->setCategories($result); $collector->setCategories($result);
} }