Passed
Push — feature/eco-3656/eco-3658-enab... ( ad6bd6...6b0d13 )
by
unknown
18:26 queued 12:32
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\ComputopToCheckoutClientBridge;
16
use SprykerEco\Yves\Computop\Dependency\Client\ComputopToComputopApiClientBridge;
17
use SprykerEco\Yves\Computop\Dependency\Client\ComputopToCountryClientBridge;
18
use SprykerEco\Yves\Computop\Dependency\Client\ComputopToQuoteClientBridge;
19
use SprykerEco\Yves\Computop\Dependency\Client\ComputopToShipmentClientBridge;
20
use SprykerEco\Yves\Computop\Dependency\ComputopToStoreBridge;
21
use SprykerEco\Yves\Computop\Dependency\Service\ComputopToUtilEncodingServiceBridge;
22
23
class ComputopDependencyProvider extends AbstractBundleDependencyProvider
24
{
25
    public const CLIENT_COMPUTOP = 'CLIENT_COMPUTOP';
26
    public const SERVICE_COMPUTOP_API = 'SERVICE_COMPUTOP_API';
27
    public const CLIENT_QUOTE = 'CLIENT_QUOTE';
28
    public const PLUGIN_APPLICATION = 'PLUGIN_APPLICATION';
29
    public const STORE = 'STORE';
30
    public const CLIENT_CALCULATION = 'CLIENT_CALCULATION';
31
    public const CLIENT_COUNTRY = 'CLIENT_COUNTRY';
32
    public const CLIENT_COMPUTOP_API = 'CLIENT_COMPUTOP_API';
33
    public const CLIENT_SHIPMENT = 'CLIENT_SHIPMENT';
34
    public const CLIENT_CHECKOUT = 'CLIENT_CHECKOUT';
35
36
    public const SERVICE_UTIL_ENCODING = 'SERVICE_UTIL_ENCODING';
37
38
    /**
39
     * @uses \Spryker\Yves\Router\Plugin\Application\RouterApplicationPlugin::SERVICE_ROUTER
40
     */
41
    public const SERVICE_ROUTER = 'routers';
42
43
    /**
44
     * @uses \Spryker\Yves\Http\Plugin\Application\HttpApplicationPlugin::SERVICE_REQUEST_STACK
45
     */
46
    public const SERVICE_REQUEST_STACK = 'request_stack';
47
48
    /**
49
     * @param \Spryker\Yves\Kernel\Container $container
50
     *
51
     * @return \Spryker\Yves\Kernel\Container
52
     */
53
    public function provideDependencies(Container $container): Container
54
    {
55
        $container->set(static::CLIENT_COMPUTOP, function (Container $container) {
56
            return $container->getLocator()->computop()->client();
57
        });
58
59
        $container->set(static::SERVICE_COMPUTOP_API, function () use ($container) {
60
            return $container->getLocator()->computopApi()->service();
61
        });
62
63
        $container->set(static::CLIENT_QUOTE, function () use ($container) {
64
            return new ComputopToQuoteClientBridge($container->getLocator()->quote()->client());
65
        });
66
67
        $container->set(static::CLIENT_CALCULATION, function () use ($container) {
68
            return new ComputopToCalculationClientBridge($container->getLocator()->calculation()->client());
69
        });
70
71
        $container->set(static::PLUGIN_APPLICATION, function () {
72
            $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

72
            $pimplePlugin = /** @scrutinizer ignore-deprecated */ new Pimple();
Loading history...
73
74
            return $pimplePlugin->getApplication();
75
        });
76
77
        $container->set(static::STORE, function () {
78
            return new ComputopToStoreBridge(Store::getInstance());
79
        });
80
81
        $container = $this->addRouter($container);
82
        $container = $this->addRequestStack($container);
83
        $container = $this->addUtilEncodingService($container);
84
        $container = $this->addCountryClient($container);
85
        $container = $this->addComputopApiClient($container);
86
        $container = $this->addShipmentClient($container);
87
        $container = $this->addCheckoutClient($container);
88
89
        return $container;
90
    }
91
92
    /**
93
     * @param \Spryker\Yves\Kernel\Container $container
94
     *
95
     * @return \Spryker\Yves\Kernel\Container
96
     */
97
    protected function addRouter(Container $container): Container
98
    {
99
        $container->set(static::SERVICE_ROUTER, function (Container $container) {
100
            return $container->getApplicationService(static::SERVICE_ROUTER);
101
        });
102
103
        return $container;
104
    }
105
106
    /**
107
     * @param \Spryker\Yves\Kernel\Container $container
108
     *
109
     * @return \Spryker\Yves\Kernel\Container
110
     */
111
    protected function addRequestStack(Container $container): Container
112
    {
113
        $container->set(static::SERVICE_REQUEST_STACK, function (Container $container) {
114
            return $container->getApplicationService(static::SERVICE_REQUEST_STACK);
115
        });
116
117
        return $container;
118
    }
119
120
    /**
121
     * @param \Spryker\Yves\Kernel\Container $container
122
     *
123
     * @return \Spryker\Yves\Kernel\Container
124
     */
125
    protected function addUtilEncodingService(Container $container): Container
126
    {
127
        $container->set(static::SERVICE_UTIL_ENCODING, function (Container $container) {
128
            return new ComputopToUtilEncodingServiceBridge($container->getLocator()->utilEncoding()->service());
129
        });
130
131
        return $container;
132
    }
133
134
    /**
135
     * @param \Spryker\Yves\Kernel\Container $container
136
     *
137
     * @return \Spryker\Yves\Kernel\Container
138
     */
139
    protected function addCountryClient(Container $container): Container
140
    {
141
        $container->set(static::CLIENT_COUNTRY, function (Container $container) {
142
            return new ComputopToCountryClientBridge($container->getLocator()->country()->client());
143
        });
144
145
        return $container;
146
    }
147
148
    /**
149
     * @param \Spryker\Yves\Kernel\Container $container
150
     *
151
     * @return \Spryker\Yves\Kernel\Container
152
     */
153
    protected function addComputopApiClient(Container $container): Container
154
    {
155
        $container->set(static::CLIENT_COMPUTOP_API, function (Container $container) {
156
            return new ComputopToComputopApiClientBridge($container->getLocator()->computopApi()->client());
157
        });
158
159
        return $container;
160
    }
161
162
    /**
163
     * @param \Spryker\Yves\Kernel\Container $container
164
     *
165
     * @return \Spryker\Yves\Kernel\Container
166
     */
167
    protected function addShipmentClient(Container $container): Container
168
    {
169
        $container->set(static::CLIENT_SHIPMENT, function () use ($container) {
170
            return new ComputopToShipmentClientBridge($container->getLocator()->shipment()->client());
171
        });
172
173
        return $container;
174
    }
175
176
    /**
177
     * @param \Spryker\Yves\Kernel\Container $container
178
     *
179
     * @return \Spryker\Yves\Kernel\Container
180
     */
181
    protected function addCheckoutClient(Container $container): Container
182
    {
183
        $container->set(static::CLIENT_CHECKOUT, function () use ($container) {
184
            return new ComputopToCheckoutClientBridge($container->getLocator()->checkout()->client());
185
        });
186
187
        return $container;
188
    }
189
}
190