| 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 |