Passed
Pull Request — master (#88)
by Olha
04:22
created

providePersistenceLayerDependencies()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
c 0
b 0
f 0
dl 0
loc 6
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\Payone;
9
10
use Spryker\Shared\Kernel\Store;
11
use Spryker\Zed\Kernel\AbstractBundleDependencyProvider;
12
use Spryker\Zed\Kernel\Container;
13
use SprykerEco\Zed\Payone\Dependency\Facade\PayoneToCalculationBridge;
14
use SprykerEco\Zed\Payone\Dependency\Facade\PayoneToGlossaryFacadeBridge;
15
use SprykerEco\Zed\Payone\Dependency\Facade\PayoneToOmsBridge;
16
use SprykerEco\Zed\Payone\Dependency\Facade\PayoneToRefundBridge;
17
use SprykerEco\Zed\Payone\Dependency\Facade\PayoneToSalesBridge;
18
use SprykerEco\Zed\Payone\Dependency\Facade\PayoneToStoreFacadeBridge;
19
use SprykerEco\Zed\Payone\Dependency\Service\PayoneToUtilEncodingServiceBridge;
20
21
class PayoneDependencyProvider extends AbstractBundleDependencyProvider
22
{
23
    /**
24
     * @var string
25
     */
26
    public const FACADE_OMS = 'oms facade';
27
    /**
28
     * @var string
29
     */
30
    public const FACADE_REFUND = 'refund facade';
31
32
    /**
33
     * @var string
34
     */
35
    public const FACADE_SALES = 'sales facade';
36
37
    /**
38
     * @var string
39
     */
40
    public const FACADE_GLOSSARY = 'glossary facade';
41
42
    /**
43
     * @var string
44
     */
45
    public const FACADE_CALCULATION = 'calculation facade';
46
47
    /**
48
     * @var string
49
     */
50
    public const FACADE_STORE = 'FACADE_STORE';
51
52
    /**
53
     * @var string
54
     */
55
    public const SERVICE_UTIL_ENCODING = 'SERVICE_UTIL_ENCODING';
56
57
    /**
58
     * @uses \Spryker\Zed\Http\Communication\Plugin\Application\HttpApplicationPlugin::SERVICE_REQUEST_STACK
59
     */
60
    public const SERVICE_REQUEST_STACK = 'request_stack';
61
62
    /**
63
     * @param \Spryker\Zed\Kernel\Container $container
64
     *
65
     * @return \Spryker\Zed\Kernel\Container
66
     */
67
    public function provideCommunicationLayerDependencies(Container $container)
68
    {
69
        $container = parent::provideCommunicationLayerDependencies($container);
70
        $container = $this->addOmsFacade($container);
71
        $container = $this->addRefundFacade($container);
72
        $container = $this->addSalesFacade($container);
73
        $container = $this->addCalculationFacade($container);
74
75
        return $container;
76
    }
77
78
    /**
79
     * @param \Spryker\Zed\Kernel\Container $container
80
     *
81
     * @return \Spryker\Zed\Kernel\Container
82
     */
83
    public function provideBusinessLayerDependencies(Container $container)
84
    {
85
        $container = parent::provideBusinessLayerDependencies($container);
86
        $container = $this->addGlossaryFacade($container);
87
        $container = $this->addStoreFacade($container);
88
        $container = $this->addRequestStack($container);
89
90
        return $container;
91
    }
92
93
    /**
94
     * @param \Spryker\Zed\Kernel\Container $container
95
     *
96
     * @return \Spryker\Zed\Kernel\Container
97
     */
98
    public function providePersistenceLayerDependencies(Container $container): Container
99
    {
100
        $container = parent::providePersistenceLayerDependencies($container);
101
        $container = $this->addUtilEncodingService($container);
102
103
        return $container;
104
    }
105
106
    /**
107
     * @param \Spryker\Zed\Kernel\Container $container
108
     *
109
     * @return \Spryker\Zed\Kernel\Container
110
     */
111
    protected function addOmsFacade(Container $container): Container
112
    {
113
        $container->set(static::FACADE_OMS, function (Container $container) {
114
            return new PayoneToOmsBridge($container->getLocator()->oms()->facade());
115
        });
116
117
        return $container;
118
    }
119
120
    /**
121
     * @param \Spryker\Zed\Kernel\Container $container
122
     *
123
     * @return \Spryker\Zed\Kernel\Container
124
     */
125
    protected function addRefundFacade(Container $container): Container
126
    {
127
        $container->set(static::FACADE_REFUND, function (Container $container) {
128
            return new PayoneToRefundBridge($container->getLocator()->refund()->facade());
129
        });
130
131
        return $container;
132
    }
133
134
    /**
135
     * @param \Spryker\Zed\Kernel\Container $container
136
     *
137
     * @return \Spryker\Zed\Kernel\Container
138
     */
139
    protected function addSalesFacade(Container $container): Container
140
    {
141
        $container->set(static::FACADE_SALES, function (Container $container) {
142
            return new PayoneToSalesBridge($container->getLocator()->sales()->facade());
143
        });
144
145
        return $container;
146
    }
147
148
    /**
149
     * @param \Spryker\Zed\Kernel\Container $container
150
     *
151
     * @return \Spryker\Zed\Kernel\Container
152
     */
153
    protected function addCalculationFacade(Container $container): Container
154
    {
155
        $container->set(static::FACADE_CALCULATION, function (Container $container) {
156
            return new PayoneToCalculationBridge($container->getLocator()->calculation()->facade());
157
        });
158
159
        return $container;
160
    }
161
162
    /**
163
     * @param \Spryker\Zed\Kernel\Container $container
164
     *
165
     * @return \Spryker\Zed\Kernel\Container
166
     */
167
    protected function addGlossaryFacade(Container $container): Container
168
    {
169
        $container->set(static::FACADE_GLOSSARY, function (Container $container) {
170
            return new PayoneToGlossaryFacadeBridge($container->getLocator()->glossary()->facade());
171
        });
172
173
        return $container;
174
    }
175
176
    /**
177
     * @param \Spryker\Zed\Kernel\Container $container
178
     *
179
     * @return \Spryker\Zed\Kernel\Container
180
     */
181
    protected function addStoreFacade(Container $container): Container
182
    {
183
        $container->set(static::FACADE_STORE, function (Container $container) {
184
            return new PayoneToStoreFacadeBridge($container->getLocator()->store()->facade());
185
        });
186
187
        return $container;
188
    }
189
190
    /**
191
     * @param \Spryker\Zed\Kernel\Container $container
192
     *
193
     * @return \Spryker\Zed\Kernel\Container
194
     */
195
    protected function addRequestStack(Container $container): Container
196
    {
197
        $container->set(static::SERVICE_REQUEST_STACK, function (Container $container) {
198
            return $container->getApplicationService(static::SERVICE_REQUEST_STACK);
199
        });
200
201
        return $container;
202
    }
203
204
    /**
205
     * @param \Spryker\Zed\Kernel\Container $container
206
     *
207
     * @return \Spryker\Zed\Kernel\Container
208
     */
209
    protected function addUtilEncodingService(Container $container): Container
210
    {
211
        $container->set(static::SERVICE_UTIL_ENCODING, function (Container $container) {
212
            return new PayoneToUtilEncodingServiceBridge(
213
                $container->getLocator()->utilEncoding()->service(),
214
            );
215
        });
216
217
        return $container;
218
    }
219
}
220