VisitsPaginatorAdapter.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. declare(strict_types=1);
  3. namespace Shlinkio\Shlink\Core\Paginator\Adapter;
  4. use Laminas\Paginator\Adapter\AdapterInterface;
  5. use Shlinkio\Shlink\Core\Model\VisitsParams;
  6. use Shlinkio\Shlink\Core\Repository\VisitRepositoryInterface;
  7. class VisitsPaginatorAdapter implements AdapterInterface
  8. {
  9. private VisitRepositoryInterface $visitRepository;
  10. private string $shortCode;
  11. private VisitsParams $params;
  12. public function __construct(VisitRepositoryInterface $visitRepository, string $shortCode, VisitsParams $params)
  13. {
  14. $this->visitRepository = $visitRepository;
  15. $this->shortCode = $shortCode;
  16. $this->params = $params;
  17. }
  18. public function getItems($offset, $itemCountPerPage): array // phpcs:ignore
  19. {
  20. return $this->visitRepository->findVisitsByShortCode(
  21. $this->shortCode,
  22. $this->params->getDateRange(),
  23. $itemCountPerPage,
  24. $offset,
  25. );
  26. }
  27. public function count(): int
  28. {
  29. return $this->visitRepository->countVisitsByShortCode($this->shortCode, $this->params->getDateRange());
  30. }
  31. }