Passed
Push — feature/cc-10858/dev-categorie... ( e6e70e...d4c5ed )
by Anton
06:29
created

addCategoryDataFeedQueryContainer()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
eloc 4
c 1
b 1
f 0
dl 0
loc 9
rs 10
cc 1
nc 1
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\Zed\FactFinderSdk;
9
10
use Spryker\Zed\Kernel\AbstractBundleDependencyProvider;
11
use Spryker\Zed\Kernel\Container;
12
use SprykerEco\Zed\FactFinderSdk\Dependency\Facade\FactFinderSdkToCurrencyBridge;
13
use SprykerEco\Zed\FactFinderSdk\Dependency\Facade\FactFinderSdkToLocaleBridge;
14
use SprykerEco\Zed\FactFinderSdk\Dependency\Facade\FactFinderSdkToStoreBridge;
15
use SprykerEco\Zed\FactFinderSdk\Dependency\Persistence\FactFinderSdkToCategoryDataFeedBridge;
16
use SprykerEco\Zed\FactFinderSdk\Dependency\Persistence\FactFinderSdkToProductAbstractDataFeedBridge;
17
18
class FactFinderSdkDependencyProvider extends AbstractBundleDependencyProvider
19
{
20
    public const PRODUCT_ABSTRACT_DATA_FEED = 'PRODUCT_ABSTRACT_DATA_FEED';
21
    public const CATEGORY_DATA_FEED = 'CATEGORY_DATA_FEED';
22
    public const LOCALE_FACADE = 'LOCALE_FACADE';
23
    public const STORE_FACADE = 'STORE_FACADE';
24
    public const CURRENCY_FACADE = 'CURRENCY_FACADE';
25
26
    /**
27
     * @param \Spryker\Zed\Kernel\Container $container
28
     *
29
     * @return \Spryker\Zed\Kernel\Container
30
     */
31
    public function provideCommunicationLayerDependencies(Container $container)
32
    {
33
        $container = $this->addLocaleFacade($container);
34
35
        return $container;
36
    }
37
38
    /**
39
     * @param \Spryker\Zed\Kernel\Container $container
40
     *
41
     * @return \Spryker\Zed\Kernel\Container
42
     */
43
    public function providePersistenceLayerDependencies(Container $container)
44
    {
45
        $container = $this->addProductAbstractDataFeedQueryContainer($container);
46
        $container = $this->addCategoryDataFeedQueryContainer($container);
47
48
        return $container;
49
    }
50
51
    /**
52
     * @param \Spryker\Zed\Kernel\Container $container
53
     *
54
     * @return \Spryker\Zed\Kernel\Container
55
     */
56
    public function provideBusinessLayerDependencies(Container $container)
57
    {
58
        $container = $this->addStoreFacade($container);
59
        $container = $this->addCurrencyFacade($container);
60
61
        return $container;
62
    }
63
64
    /**
65
     * @param \Spryker\Zed\Kernel\Container $container
66
     *
67
     * @return \Spryker\Zed\Kernel\Container
68
     */
69
    protected function addProductAbstractDataFeedQueryContainer(Container $container): Container
70
    {
71
        $container->set(static::PRODUCT_ABSTRACT_DATA_FEED, function (Container $container) {
72
            return new FactFinderSdkToProductAbstractDataFeedBridge(
73
                $container->getLocator()->productAbstractDataFeed()->queryContainer()
74
            );
75
        });
76
77
        return $container;
78
    }
79
80
    /**
81
     * @param \Spryker\Zed\Kernel\Container $container
82
     *
83
     * @return \Spryker\Zed\Kernel\Container
84
     */
85
    protected function addCategoryDataFeedQueryContainer(Container $container): Container
86
    {
87
        $container->set(static::CATEGORY_DATA_FEED, function (Container $container) {
88
            return new FactFinderSdkToCategoryDataFeedBridge(
89
                $container->getLocator()->categoryDataFeed()->queryContainer()
90
            );
91
        });
92
93
        return $container;
94
    }
95
96
    /**
97
     * @param \Spryker\Zed\Kernel\Container $container
98
     *
99
     * @return \Spryker\Zed\Kernel\Container
100
     */
101
    protected function addStoreFacade(Container $container)
102
    {
103
        $container->set(static::STORE_FACADE, function (Container $container) {
104
            return new FactFinderSdkToStoreBridge($container->getLocator()->store()->facade());
105
        });
106
107
        return $container;
108
    }
109
110
    /**
111
     * @param \Spryker\Zed\Kernel\Container $container
112
     *
113
     * @return \Spryker\Zed\Kernel\Container
114
     */
115
    protected function addCurrencyFacade(Container $container)
116
    {
117
        $container->set(static::CURRENCY_FACADE, function (Container $container) {
118
            return new FactFinderSdkToCurrencyBridge(
119
                $container->getLocator()->currency()->facade()
120
            );
121
        });
122
123
        return $container;
124
    }
125
126
    /**
127
     * @param \Spryker\Zed\Kernel\Container $container
128
     *
129
     * @return \Spryker\Zed\Kernel\Container
130
     */
131
    protected function addLocaleFacade(Container $container)
132
    {
133
        $container->set(static::LOCALE_FACADE, function (Container $container) {
134
            return new FactFinderSdkToLocaleBridge(
135
                $container->getLocator()->locale()->facade()
136
            );
137
        });
138
139
        return $container;
140
    }
141
}
142