Passed
Pull Request — master (#82)
by John
07:07
created

PayoneDependencyProvider::addRefundFacade()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

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