FilterGroupConverter::convertFilter()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 22
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 15
dl 0
loc 22
rs 9.7666
c 0
b 0
f 0
cc 2
nc 2
nop 1
1
<?php
2
3
/**
4
 * MIT License
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerEco\Client\FactFinderSdk\Business\Api\Converter\Data;
9
10
use FACTFinder\Data\Filter;
11
use FACTFinder\Data\FilterGroup;
12
use FACTFinder\Data\SliderFilter;
13
use Generated\Shared\Transfer\FactFinderSdkDataFilterGroupTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfe...DataFilterGroupTransfer was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
14
use Generated\Shared\Transfer\FactFinderSdkDataFilterTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfe...erSdkDataFilterTransfer was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
15
use SprykerEco\Client\FactFinderSdk\Business\Api\Converter\BaseConverter;
16
17
class FilterGroupConverter extends BaseConverter implements FilterGroupConverterInterface
18
{
19
    /**
20
     * @var \FACTFinder\Data\FilterGroup
21
     */
22
    protected $filterGroup;
23
24
    /**
25
     * @var \SprykerEco\Client\FactFinderSdk\Business\Api\Converter\Data\ItemConverterInterface
26
     */
27
    protected $itemConverter;
28
29
    /**
30
     * @param \SprykerEco\Client\FactFinderSdk\Business\Api\Converter\Data\ItemConverterInterface $itemConverter
31
     */
32
    public function __construct(ItemConverterInterface $itemConverter)
33
    {
34
        $this->itemConverter = $itemConverter;
35
    }
36
37
    /**
38
     * @param \FACTFinder\Data\FilterGroup $filterGroup
39
     *
40
     * @return void
41
     */
42
    public function setFilterGroup(FilterGroup $filterGroup)
43
    {
44
        $this->filterGroup = $filterGroup;
45
    }
46
47
    /**
48
     * @return \Generated\Shared\Transfer\FactFinderSdkDataFilterGroupTransfer
49
     */
50
    public function convert()
51
    {
52
        $factFinderDataFilterGroupTransfer = new FactFinderSdkDataFilterGroupTransfer();
53
54
        /** @var \FACTFinder\Data\Filter $filter */
55
        foreach ($this->filterGroup as $filter) {
56
            $factFinderDataFilterGroupTransfer->addFilters(
57
                $this->convertFilter($filter)
58
            );
59
        }
60
61
        $factFinderDataFilterGroupTransfer->setName($this->filterGroup->getName());
62
        $factFinderDataFilterGroupTransfer->setDetailedLinkCount($this->filterGroup->getDetailedLinkCount());
63
        $factFinderDataFilterGroupTransfer->setUnit($this->filterGroup->getUnit());
64
        $factFinderDataFilterGroupTransfer->setIsRegularStyle($this->filterGroup->isRegularStyle());
65
        $factFinderDataFilterGroupTransfer->setIsSliderStyle($this->filterGroup->isSliderStyle());
66
        $factFinderDataFilterGroupTransfer->setIsTreeStyle($this->filterGroup->isTreeStyle());
67
        $factFinderDataFilterGroupTransfer->setIsMultiSelectStyle($this->filterGroup->isMultiSelectStyle());
68
        $factFinderDataFilterGroupTransfer->setHasPreviewImages($this->filterGroup->hasPreviewImages());
69
        $factFinderDataFilterGroupTransfer->setHasSelectedItems($this->filterGroup->hasSelectedItems());
70
        $factFinderDataFilterGroupTransfer->setIsSingleHideUnselectedType($this->filterGroup->isSingleHideUnselectedType());
71
        $factFinderDataFilterGroupTransfer->setIsSingleShowUnselectedType($this->filterGroup->isSingleShowUnselectedType());
72
        $factFinderDataFilterGroupTransfer->setIsMultiSelectOrType($this->filterGroup->isMultiSelectOrType());
73
        $factFinderDataFilterGroupTransfer->setIsMultiSelectAndType($this->filterGroup->isMultiSelectAndType());
74
        $factFinderDataFilterGroupTransfer->setIsTextType($this->filterGroup->isTextType());
75
        $factFinderDataFilterGroupTransfer->setIsNumberType($this->filterGroup->isNumberType());
76
77
        return $factFinderDataFilterGroupTransfer;
78
    }
79
80
    /**
81
     * @param \FACTFinder\Data\Filter $filter
82
     *
83
     * @return \Generated\Shared\Transfer\FactFinderSdkDataFilterTransfer
84
     */
85
    protected function convertFilter(Filter $filter)
86
    {
87
        $factFinderDataFilterTransfer = new FactFinderSdkDataFilterTransfer();
88
89
        $this->itemConverter->setItem($filter);
90
        $factFinderDataFilterTransfer->setItem(
91
            $this->itemConverter->convert()
92
        );
93
        $factFinderDataFilterTransfer->setFieldName($filter->getFieldName());
94
        $factFinderDataFilterTransfer->setMatchCount($filter->getMatchCount());
95
        $factFinderDataFilterTransfer->setClusterLevel($filter->getClusterLevel());
96
        $factFinderDataFilterTransfer->setPreviewImage($filter->getPreviewImage());
97
        $factFinderDataFilterTransfer->setHasPreviewImage($filter->hasPreviewImage());
98
99
        if ($filter instanceof SliderFilter) {
100
            $factFinderDataFilterTransfer->setAbsoluteMinimum((string)$filter->getAbsoluteMinimum());
101
            $factFinderDataFilterTransfer->setAbsoluteMaximum((string)$filter->getAbsoluteMaximum());
102
            $factFinderDataFilterTransfer->setSelectedMinimum((string)$filter->getSelectedMinimum());
103
            $factFinderDataFilterTransfer->setSelectedMaximum((string)$filter->getSelectedMaximum());
104
        }
105
106
        return $factFinderDataFilterTransfer;
107
    }
108
}
109