StatsProvider   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
eloc 8
dl 0
loc 39
rs 10
c 0
b 0
f 0
ccs 8
cts 8
cp 1
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A getStats() 0 8 1
1
<?php
2
/**
3
 * File: StatsProvider.php
4
 *
5
 * @author      Maciej Sławik <[email protected]>
6
 * Github:      https://github.com/maciejslawik
7
 */
8
9
namespace MSlwk\Otomoto\App\Stats;
10
11
use MSlwk\Otomoto\App\Manufacturer\Data\ManufacturerDTOInterface;
12
use MSlwk\Otomoto\App\Model\Data\ModelDTOInterface;
13
use MSlwk\Otomoto\App\Stats\Data\StatsDTOInterface;
14
use MSlwk\Otomoto\App\Stats\Filter\FilterArray;
15
use MSlwk\Otomoto\App\Stats\Scrapper\StatsHtmlScrapperInterface;
16
17
/**
18
 * Class StatsProvider
19
 * @package MSlwk\Otomoto\App\Stats
20
 */
21
class StatsProvider
22
{
23
    /**
24
     * @var ModelOffersHtmlProvider
25
     */
26
    private $htmlProvider;
27
28
    /**
29
     * @var StatsHtmlScrapperInterface
30
     */
31
    private $htmlScrapper;
32
33
    /**
34
     * StatsProvider constructor.
35
     * @param ModelOffersHtmlProvider $htmlProvider
36
     * @param StatsHtmlScrapperInterface $htmlScrapper
37
     */
38 2
    public function __construct(
39
        ModelOffersHtmlProvider $htmlProvider,
40
        StatsHtmlScrapperInterface $htmlScrapper
41
    ) {
42 2
        $this->htmlProvider = $htmlProvider;
43 2
        $this->htmlScrapper = $htmlScrapper;
44 2
    }
45
46
    /**
47
     * @param ManufacturerDTOInterface $manufacturer
48
     * @param ModelDTOInterface $model
49
     * @param FilterArray $filters
50
     * @return StatsDTOInterface
51
     */
52 1
    public function getStats(
53
        ManufacturerDTOInterface $manufacturer,
54
        ModelDTOInterface $model,
55
        FilterArray $filters
56
    ): StatsDTOInterface {
57 1
        $html = $this->htmlProvider->getAllPagesHtml($manufacturer, $model, $filters);
58 1
        $stats = $this->htmlScrapper->scrapModelStats($html);
59 1
        return $stats;
60
    }
61
}
62