Completed
Push — develop ( ae060f...1a4eee )
by Alejandro
08:12 queued 08:08
created

VisitsPaginatorAdapter::count()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 16
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 6
c 1
b 0
f 0
dl 0
loc 16
rs 10
ccs 7
cts 7
cp 1
cc 2
nc 2
nop 0
crap 2
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 3
    public function __construct(
18
        VisitRepositoryInterface $visitRepository,
19
        ShortUrlIdentifier $identifier,
20
        VisitsParams $params
21
    ) {
22 3
        $this->visitRepository = $visitRepository;
23 3
        $this->params = $params;
24 3
        $this->identifier = $identifier;
25
    }
26
27 2
    public function getItems($offset, $itemCountPerPage): array // phpcs:ignore
28
    {
29 2
        return $this->visitRepository->findVisitsByShortCode(
30 2
            $this->identifier->shortCode(),
31 2
            $this->identifier->domain(),
32 2
            $this->params->getDateRange(),
33
            $itemCountPerPage,
34
            $offset,
35
        );
36
    }
37
38 2
    protected function doCount(): int
39
    {
40 2
        return $this->visitRepository->countVisitsByShortCode(
41 2
            $this->identifier->shortCode(),
42 2
            $this->identifier->domain(),
43 2
            $this->params->getDateRange(),
44
        );
45
    }
46
}
47