Passed
Push — feature/eco-3656/dev-paypal-ex... ( a9c700...3cc3fd )
by
unknown
04:14
created

getPayPalExpressInitQuoteExpanderPlugins()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
c 0
b 0
f 0
dl 0
loc 3
rs 10
cc 1
nc 1
nop 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\Yves\Computop;
9
10
use Spryker\Shared\Kernel\Store;
11
use Spryker\Yves\Kernel\AbstractBundleDependencyProvider;
12
use Spryker\Yves\Kernel\Container;
13
use Spryker\Yves\Kernel\Plugin\Pimple;
14
use SprykerEco\Yves\Computop\Dependency\Client\ComputopToCalculationClientBridge;
15
use SprykerEco\Yves\Computop\Dependency\Client\ComputopToComputopApiClientBridge;
16
use SprykerEco\Yves\Computop\Dependency\Client\ComputopToCountryClientBridge;
17
use SprykerEco\Yves\Computop\Dependency\Client\ComputopToQuoteClientBridge;
18
use SprykerEco\Yves\Computop\Dependency\ComputopToStoreBridge;
19
use SprykerEco\Yves\Computop\Dependency\Service\ComputopToUtilEncodingServiceBridge;
20
21
class ComputopDependencyProvider extends AbstractBundleDependencyProvider
22
{
23
    /**
24
     * @var string
25
     */
26
    public const CLIENT_COMPUTOP = 'CLIENT_COMPUTOP';
27
    /**
28
     * @var string
29
     */
30
    public const SERVICE_COMPUTOP_API = 'SERVICE_COMPUTOP_API';
31
    /**
32
     * @var string
33
     */
34
    public const CLIENT_QUOTE = 'CLIENT_QUOTE';
35
    /**
36
     * @var string
37
     */
38
    public const PLUGIN_APPLICATION = 'PLUGIN_APPLICATION';
39
    /**
40
     * @var string
41
     */
42
    public const STORE = 'STORE';
43
    /**
44
     * @var string
45
     */
46
    public const CLIENT_CALCULATION = 'CLIENT_CALCULATION';
47
    /**
48
     * @var string
49
     */
50
    public const CLIENT_COUNTRY = 'CLIENT_COUNTRY';
51
    /**
52
     * @var string
53
     */
54
    public const CLIENT_COMPUTOP_API = 'CLIENT_COMPUTOP_API';
55
    /**
56
     * @var string
57
     */
58
    public const CLIENT_SHIPMENT = 'CLIENT_SHIPMENT';
59
60
    /**
61
     * @var string
62
     */
63
    public const SERVICE_UTIL_ENCODING = 'SERVICE_UTIL_ENCODING';
64
65
    /**
66
     * @uses \Spryker\Yves\Router\Plugin\Application\RouterApplicationPlugin::SERVICE_ROUTER
67
     *
68
     * @var string
69
     */
70
    public const SERVICE_ROUTER = 'routers';
71
72
    /**
73
     * @uses \Spryker\Yves\Http\Plugin\Application\HttpApplicationPlugin::SERVICE_REQUEST_STACK
74
     *
75
     * @var string
76
     */
77
    public const SERVICE_REQUEST_STACK = 'request_stack';
78
79
    /**
80
     * @var string
81
     */
82
    public const PLUGINS_PAYPAL_EXPRESS_INIT_QUOTE_EXPANDER = 'PLUGINS_PAYPAL_EXPRESS_INIT_QUOTE_EXPANDER';
83
84
    /**
85
     * @param \Spryker\Yves\Kernel\Container $container
86
     *
87
     * @return \Spryker\Yves\Kernel\Container
88
     */
89
    public function provideDependencies(Container $container): Container
90
    {
91
        $container->set(static::CLIENT_COMPUTOP, function (Container $container) {
92
            return $container->getLocator()->computop()->client();
93
        });
94
95
        $container->set(static::SERVICE_COMPUTOP_API, function () use ($container) {
96
            return $container->getLocator()->computopApi()->service();
97
        });
98
99
        $container->set(static::CLIENT_QUOTE, function () use ($container) {
100
            return new ComputopToQuoteClientBridge($container->getLocator()->quote()->client());
101
        });
102
103
        $container->set(static::CLIENT_CALCULATION, function () use ($container) {
104
            return new ComputopToCalculationClientBridge($container->getLocator()->calculation()->client());
105
        });
106
107
        $container->set(static::PLUGIN_APPLICATION, function () {
108
            $pimplePlugin = new Pimple();
0 ignored issues
show
Deprecated Code introduced by
The class Spryker\Yves\Kernel\Plugin\Pimple has been deprecated: Use {@link \Spryker\Shared\Kernel\StaticContainer} instead. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

108
            $pimplePlugin = /** @scrutinizer ignore-deprecated */ new Pimple();
Loading history...
109
110
            return $pimplePlugin->getApplication();
111
        });
112
113
        $container->set(static::STORE, function () {
114
            return new ComputopToStoreBridge(Store::getInstance());
115
        });
116
117
        $container = $this->addRouter($container);
118
        $container = $this->addRequestStack($container);
119
        $container = $this->addUtilEncodingService($container);
120
        $container = $this->addCountryClient($container);
121
        $container = $this->addComputopApiClient($container);
122
        $container = $this->addPayPalExpressInitQuoteExpanderPlugins($container);
123
124
        return $container;
125
    }
126
127
    /**
128
     * @param \Spryker\Yves\Kernel\Container $container
129
     *
130
     * @return \Spryker\Yves\Kernel\Container
131
     */
132
    protected function addRouter(Container $container): Container
133
    {
134
        $container->set(static::SERVICE_ROUTER, function (Container $container) {
135
            return $container->getApplicationService(static::SERVICE_ROUTER);
136
        });
137
138
        return $container;
139
    }
140
141
    /**
142
     * @param \Spryker\Yves\Kernel\Container $container
143
     *
144
     * @return \Spryker\Yves\Kernel\Container
145
     */
146
    protected function addRequestStack(Container $container): Container
147
    {
148
        $container->set(static::SERVICE_REQUEST_STACK, function (Container $container) {
149
            return $container->getApplicationService(static::SERVICE_REQUEST_STACK);
150
        });
151
152
        return $container;
153
    }
154
155
    /**
156
     * @param \Spryker\Yves\Kernel\Container $container
157
     *
158
     * @return \Spryker\Yves\Kernel\Container
159
     */
160
    protected function addUtilEncodingService(Container $container): Container
161
    {
162
        $container->set(static::SERVICE_UTIL_ENCODING, function (Container $container) {
163
            return new ComputopToUtilEncodingServiceBridge($container->getLocator()->utilEncoding()->service());
164
        });
165
166
        return $container;
167
    }
168
169
    /**
170
     * @param \Spryker\Yves\Kernel\Container $container
171
     *
172
     * @return \Spryker\Yves\Kernel\Container
173
     */
174
    protected function addCountryClient(Container $container): Container
175
    {
176
        $container->set(static::CLIENT_COUNTRY, function (Container $container) {
177
            return new ComputopToCountryClientBridge($container->getLocator()->country()->client());
178
        });
179
180
        return $container;
181
    }
182
183
    /**
184
     * @param \Spryker\Yves\Kernel\Container $container
185
     *
186
     * @return \Spryker\Yves\Kernel\Container
187
     */
188
    protected function addComputopApiClient(Container $container): Container
189
    {
190
        $container->set(static::CLIENT_COMPUTOP_API, function (Container $container) {
191
            return new ComputopToComputopApiClientBridge($container->getLocator()->computopApi()->client());
192
        });
193
194
        return $container;
195
    }
196
197
    /**
198
     * @param \Spryker\Yves\Kernel\Container $container
199
     *
200
     * @return \Spryker\Yves\Kernel\Container
201
     */
202
    protected function addPayPalExpressInitQuoteExpanderPlugins(Container $container): Container
203
    {
204
        $container->set(static::PLUGINS_PAYPAL_EXPRESS_INIT_QUOTE_EXPANDER, function () {
205
            return $this->getPayPalExpressInitQuoteExpanderPlugins();
206
        });
207
208
        return $container;
209
    }
210
211
    /**
212
     * @return array<\SprykerEco\Yves\ComputopExtension\Dependency\Plugin\PayPalExpressInitQuoteExpanderPluginInterface>
213
     */
214
    protected function getPayPalExpressInitQuoteExpanderPlugins(): array
215
    {
216
        return [];
217
    }
218
}
219