WebComponentsConfigBuilder   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 82
Duplicated Lines 0 %

Importance

Changes 2
Bugs 2 Features 0
Metric Value
eloc 40
c 2
b 2
f 0
dl 0
loc 82
rs 10
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A build() 0 53 1
A __construct() 0 6 1
1
<?php
2
3
/**
4
 * MIT License
5
 * For full license information, please view the LICENSE file that was distributed with this source code.
6
 */
7
8
namespace SprykerEco\Yves\FactFinderWebComponents\WebComponentsConfig;
9
10
use SprykerEco\Yves\FactFinderWebComponents\FactFinderWebComponentsConfig;
11
use Symfony\Component\Form\DataTransformerInterface;
12
13
class WebComponentsConfigBuilder implements WebComponentsConfigBuilderInterface
14
{
15
    /**
16
     * @var \SprykerEco\Yves\FactFinderWebComponents\FactFinderWebComponentsConfig
17
     */
18
    protected $webComponentsConfig;
19
20
    /**
21
     * @var \Symfony\Component\Form\DataTransformerInterface
22
     */
23
    protected $configToTwigConfigTransformer;
24
25
    /**
26
     * @param \SprykerEco\Yves\FactFinderWebComponents\FactFinderWebComponentsConfig $config
27
     * @param \Symfony\Component\Form\DataTransformerInterface $configToTwigConfigTransformer
28
     */
29
    public function __construct(
30
        FactFinderWebComponentsConfig $config,
31
        DataTransformerInterface $configToTwigConfigTransformer
32
    ) {
33
        $this->webComponentsConfig = $config;
34
        $this->configToTwigConfigTransformer = $configToTwigConfigTransformer;
35
    }
36
37
    /**
38
     * @inheritdoc
39
     *
40
     * @return array
41
     */
42
    public function build(): array
43
    {
44
        $webComponentsConfig = $this->webComponentsConfig;
45
        $twigConfigTransformer = $this->configToTwigConfigTransformer;
46
47
        return [
48
            'facetsAsn' => $twigConfigTransformer->transform(
49
                $webComponentsConfig->getAsnSliderComponentConfig()
50
            ),
51
            'breadcrumb' => $twigConfigTransformer->transform(
52
                $webComponentsConfig->getBreadcrumbComponentConfig()
53
            ),
54
            'campaign' => $twigConfigTransformer->transform(
55
                $webComponentsConfig->getCampaignWidgetComponentConfig()
56
            ),
57
            'communication' => $twigConfigTransformer->transform(
58
                $webComponentsConfig->getCommunicationComponentConfig()
59
            ),
60
            'headerNavigation' => $twigConfigTransformer->transform(
61
                $webComponentsConfig->getHeaderNavigationWidgetComponentConfig()
62
            ),
63
            'paging' => $twigConfigTransformer->transform(
64
                $webComponentsConfig->getPagingWidgetComponentConfig()
65
            ),
66
            'productsPerPage' => $twigConfigTransformer->transform(
67
                $webComponentsConfig->getProductsPerPageWidgetComponentConfig()
68
            ),
69
            'pushedProducts' => $twigConfigTransformer->transform(
70
                $webComponentsConfig->getPushedProductsWidgetComponentConfig()
71
            ),
72
            'recommendation' => $twigConfigTransformer->transform(
73
                $webComponentsConfig->getRecommendationComponentConfig()
74
            ),
75
            'recordList' => $twigConfigTransformer->transform(
76
                $webComponentsConfig->getRecordListComponentConfig()
77
            ),
78
            'suggest' => $twigConfigTransformer->transform(
79
                $webComponentsConfig->getSuggestComponentConfig()
80
            ),
81
            'checkoutTracking' => $twigConfigTransformer->transform(
82
                $webComponentsConfig->getCheckoutTrackingComponentConfig()
83
            ),
84
            'searchbox' => $twigConfigTransformer->transform(
85
                $webComponentsConfig->getSearchBoxComponentConfig()
86
            ),
87
            'similarProducts' => $twigConfigTransformer->transform(
88
                $webComponentsConfig->getSimilarProductsComponentConfig()
89
            ),
90
            'sortBox' => $twigConfigTransformer->transform(
91
                $webComponentsConfig->getSortBoxWidgetComponentConfig()
92
            ),
93
            'tagCloud' => $twigConfigTransformer->transform(
94
                $webComponentsConfig->getTagCloudWidgetComponentConfig()
95
            ),
96
        ];
97
    }
98
}
99