VisitsPaginatorAdapter   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 3
eloc 17
dl 0
loc 33
ccs 15
cts 15
cp 1
rs 10
c 1
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A doCount() 0 6 1
A __construct() 0 8 1
A getItems() 0 8 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Shlinkio\Shlink\Core\Paginator\Adapter;
6
7
use Shlinkio\Shlink\Core\Model\ShortUrlIdentifier;
8
use Shlinkio\Shlink\Core\Model\VisitsParams;
9
use Shlinkio\Shlink\Core\Repository\VisitRepositoryInterface;
10
11
class VisitsPaginatorAdapter extends AbstractCacheableCountPaginatorAdapter
12
{
13
    private VisitRepositoryInterface $visitRepository;
14
    private ShortUrlIdentifier $identifier;
15
    private VisitsParams $params;
16
17 4
    public function __construct(
18
        VisitRepositoryInterface $visitRepository,
19
        ShortUrlIdentifier $identifier,
20
        VisitsParams $params
21
    ) {
22 4
        $this->visitRepository = $visitRepository;
23 4
        $this->params = $params;
24 4
        $this->identifier = $identifier;
25 4
    }
26
27 3
    public function getItems($offset, $itemCountPerPage): array // phpcs:ignore
28
    {
29 3
        return $this->visitRepository->findVisitsByShortCode(
30 3
            $this->identifier->shortCode(),
31 3
            $this->identifier->domain(),
32 3
            $this->params->getDateRange(),
33
            $itemCountPerPage,
34
            $offset,
35
        );
36
    }
37
38 3
    protected function doCount(): int
39
    {
40 3
        return $this->visitRepository->countVisitsByShortCode(
41 3
            $this->identifier->shortCode(),
42 3
            $this->identifier->domain(),
43 3
            $this->params->getDateRange(),
44
        );
45
    }
46
}
47