Passed
Pull Request — master (#84)
by Olha
12:53
created

PayoneDependencyProvider::addStoreFacade()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

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