Passed
Push — feature/eco-3656/eco-3658-enab... ( a994d4...5e2bf3 )
by
unknown
06:08 queued 21s
created

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

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