Completed
Push — feature/eco-3656/eco-3658-enab... ( ab05e4...16d9cc )
by
unknown
06:10
created

ComputopDependencyProvider::addHttpClient()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 4
c 0
b 0
f 0
dl 0
loc 9
rs 10
cc 1
nc 1
nop 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A ComputopDependencyProvider::addComputopApiClient() 0 7 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\ComputopToStoreBridge;
19
use SprykerEco\Yves\Computop\Dependency\Service\ComputopToUtilEncodingServiceBridge;
20
21
class ComputopDependencyProvider extends AbstractBundleDependencyProvider
22
{
23
    public const CLIENT_COMPUTOP = 'CLIENT_COMPUTOP';
24
    public const SERVICE_COMPUTOP_API = 'SERVICE_COMPUTOP_API';
25
    public const CLIENT_QUOTE = 'CLIENT_QUOTE';
26
    public const PLUGIN_APPLICATION = 'PLUGIN_APPLICATION';
27
    public const STORE = 'STORE';
28
    public const CLIENT_CALCULATION = 'CLIENT_CALCULATION';
29
    public const CLIENT_COUNTRY = 'CLIENT_COUNTRY';
30
    public const CLIENT_COMPUTOP_API = 'CLIENT_COMPUTOP_API';
31
    public const CLIENT_SHIPMENT = 'CLIENT_SHIPMENT';
32
33
    public const SERVICE_UTIL_ENCODING = 'SERVICE_UTIL_ENCODING';
34
35
    /**
36
     * @uses \Spryker\Yves\Router\Plugin\Application\RouterApplicationPlugin::SERVICE_ROUTER
37
     */
38
    public const SERVICE_ROUTER = 'routers';
39
40
    /**
41
     * @uses \Spryker\Yves\Http\Plugin\Application\HttpApplicationPlugin::SERVICE_REQUEST_STACK
42
     */
43
    public const SERVICE_REQUEST_STACK = 'request_stack';
44
45
    /**
46
     * @param \Spryker\Yves\Kernel\Container $container
47
     *
48
     * @return \Spryker\Yves\Kernel\Container
49
     */
50
    public function provideDependencies(Container $container)
51
    {
52
        $container->set(static::CLIENT_COMPUTOP, function (Container $container) {
53
            return $container->getLocator()->computop()->client();
54
        });
55
56
        $container->set(static::SERVICE_COMPUTOP_API, function () use ($container) {
57
            return $container->getLocator()->computopApi()->service();
58
        });
59
60
        $container->set(static::CLIENT_QUOTE, function () use ($container) {
61
            return new ComputopToQuoteClientBridge($container->getLocator()->quote()->client());
62
        });
63
64
        $container->set(static::CLIENT_CALCULATION, function () use ($container) {
65
            return new ComputopToCalculationClientBridge($container->getLocator()->calculation()->client());
66
        });
67
68
        $container->set(static::PLUGIN_APPLICATION, function () {
69
            $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

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