Passed
Push — feature/eco-3656/eco-3658-enab... ( 522204...dfb610 )
by
unknown
04:02
created

addPayPalExpressInitPlugins()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
c 0
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\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\Client\ComputopToShipmentClientBridge;
0 ignored issues
show
Bug introduced by
The type SprykerEco\Yves\Computop...pToShipmentClientBridge was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
19
use SprykerEco\Yves\Computop\Dependency\ComputopToStoreBridge;
20
use SprykerEco\Yves\Computop\Dependency\Plugin\PayPalExpressInitPluginInterface;
21
use SprykerEco\Yves\Computop\Dependency\Service\ComputopToUtilEncodingServiceBridge;
22
23
class ComputopDependencyProvider extends AbstractBundleDependencyProvider
24
{
25
    /**
26
     * @var string
27
     */
28
    public const CLIENT_COMPUTOP = 'CLIENT_COMPUTOP';
29
    /**
30
     * @var string
31
     */
32
    public const SERVICE_COMPUTOP_API = 'SERVICE_COMPUTOP_API';
33
    /**
34
     * @var string
35
     */
36
    public const CLIENT_QUOTE = 'CLIENT_QUOTE';
37
    /**
38
     * @var string
39
     */
40
    public const PLUGIN_APPLICATION = 'PLUGIN_APPLICATION';
41
    /**
42
     * @var string
43
     */
44
    public const STORE = 'STORE';
45
    /**
46
     * @var string
47
     */
48
    public const CLIENT_CALCULATION = 'CLIENT_CALCULATION';
49
    /**
50
     * @var string
51
     */
52
    public const CLIENT_COUNTRY = 'CLIENT_COUNTRY';
53
    /**
54
     * @var string
55
     */
56
    public const CLIENT_COMPUTOP_API = 'CLIENT_COMPUTOP_API';
57
    /**
58
     * @var string
59
     */
60
    public const CLIENT_SHIPMENT = 'CLIENT_SHIPMENT';
61
62
    /**
63
     * @var string
64
     */
65
    public const SERVICE_UTIL_ENCODING = 'SERVICE_UTIL_ENCODING';
66
67
    /**
68
     * @uses \Spryker\Yves\Router\Plugin\Application\RouterApplicationPlugin::SERVICE_ROUTER
69
     *
70
     * @var string
71
     */
72
    public const SERVICE_ROUTER = 'routers';
73
74
    /**
75
     * @uses \Spryker\Yves\Http\Plugin\Application\HttpApplicationPlugin::SERVICE_REQUEST_STACK
76
     *
77
     * @var string
78
     */
79
    public const SERVICE_REQUEST_STACK = 'request_stack';
80
81
    /**
82
     * @var string
83
     */
84
    public const PLUGIN_PAYPAL_EXPRESS_INIT_PLUGINS_STACK = 'paypal_express_init_plugins';
85
86
    /**
87
     * @param \Spryker\Yves\Kernel\Container $container
88
     *
89
     * @return \Spryker\Yves\Kernel\Container
90
     */
91
    public function provideDependencies(Container $container): Container
92
    {
93
        $container->set(static::CLIENT_COMPUTOP, function (Container $container) {
94
            return $container->getLocator()->computop()->client();
95
        });
96
97
        $container->set(static::SERVICE_COMPUTOP_API, function () use ($container) {
98
            return $container->getLocator()->computopApi()->service();
99
        });
100
101
        $container->set(static::CLIENT_QUOTE, function () use ($container) {
102
            return new ComputopToQuoteClientBridge($container->getLocator()->quote()->client());
103
        });
104
105
        $container->set(static::CLIENT_CALCULATION, function () use ($container) {
106
            return new ComputopToCalculationClientBridge($container->getLocator()->calculation()->client());
107
        });
108
109
        $container->set(static::PLUGIN_APPLICATION, function () {
110
            $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

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