add limit and offset for apicontroller

This commit is contained in:
Julie Lenaerts 2023-11-21 09:19:57 +01:00
parent c185c35c44
commit 502894ecea
2 changed files with 16 additions and 3 deletions

View File

@ -36,7 +36,10 @@ class NewsItemApiController
{ {
$total = $this->newsItemRepository->countWithDateFilter(); $total = $this->newsItemRepository->countWithDateFilter();
$paginator = $this->paginatorFactory->create($total); $paginator = $this->paginatorFactory->create($total);
$newsItems = $this->newsItemRepository->findWithDateFilter(); $newsItems = $this->newsItemRepository->findWithDateFilter(
$limit = $paginator->getItemsPerPage(),
$offset = $paginator->getCurrentPage()->getFirstItemNumber()
);
return new JsonResponse($this->serializer->serialize( return new JsonResponse($this->serializer->serialize(
new Collection(array_values($newsItems), $paginator), new Collection(array_values($newsItems), $paginator),

View File

@ -80,9 +80,19 @@ class NewsItemRepository implements ObjectRepository
return $qb->getQuery()->getResult(); return $qb->getQuery()->getResult();
} }
public function findWithDateFilter() public function findWithDateFilter($limit = null, $offset = null)
{ {
return $this->buildQueryWithDateFilter() $qb = $this->buildQueryWithDateFilter();
if ($limit) {
$qb->setMaxResults($limit);
}
if ($offset) {
$qb->setFirstResult($offset);
}
return $qb
->getQuery() ->getQuery()
->getResult(); ->getResult();
} }