Total Complexity | 3 |
Total Lines | 36 |
Duplicated Lines | 0 % |
Coverage | 100% |
Changes | 0 |
1 | <?php |
||
20 | class ModelHtmlScrapper implements ModelHtmlScrapperInterface |
||
21 | { |
||
22 | const HTML_MODEL_DATA_NODE_SELECTOR = 'section#body-container'; |
||
23 | const HTML_MODEL_DATA_NODE_ATTRIBUTE = 'data-facets'; |
||
24 | const MODEL_DATA_JSON_KEY = 'filter_enum_model'; |
||
25 | |||
26 | /** |
||
27 | * @param string $html |
||
28 | * @return ModelDTOArray |
||
29 | */ |
||
30 | 1 | public function scrapModels(string $html): ModelDTOArray |
|
31 | { |
||
32 | 1 | $modelDTOArray = new ModelDTOArray(); |
|
33 | |||
34 | 1 | $modelOptions = $this->getModelsElements($html); |
|
35 | |||
36 | 1 | foreach ($modelOptions as $model => $numberOfOffers) { |
|
37 | 1 | $modelDTO = new ModelDTO($model); |
|
38 | 1 | $modelDTOArray->add($modelDTO); |
|
39 | } |
||
40 | |||
41 | 1 | return $modelDTOArray; |
|
42 | } |
||
43 | |||
44 | /** |
||
45 | * @param string $html |
||
46 | * @return array |
||
47 | */ |
||
48 | 1 | private function getModelsElements(string $html): array |
|
56 | } |
||
57 | } |
||
58 |