ComputopDependencyProvider::provideDependencies()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 34
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

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

66
            $pimplePlugin = /** @scrutinizer ignore-deprecated */ new Pimple();
Loading history...
67
68
            return $pimplePlugin->getApplication();
69
        });
70
71
        $container->set(static::STORE, function () {
72
            return new ComputopToStoreBridge(Store::getInstance());
73
        });
74
75
        $container = $this->addRouter($container);
76
        $container = $this->addRequestStack($container);
77
        $container = $this->addUtilEncodingService($container);
78
        $container = $this->addCountryClient($container);
79
80
        return $container;
81
    }
82
83
    /**
84
     * @param \Spryker\Yves\Kernel\Container $container
85
     *
86
     * @return \Spryker\Yves\Kernel\Container
87
     */
88
    protected function addRouter(Container $container): Container
89
    {
90
        $container->set(static::SERVICE_ROUTER, function (Container $container) {
91
            return $container->getApplicationService(static::SERVICE_ROUTER);
92
        });
93
94
        return $container;
95
    }
96
97
    /**
98
     * @param \Spryker\Yves\Kernel\Container $container
99
     *
100
     * @return \Spryker\Yves\Kernel\Container
101
     */
102
    protected function addRequestStack(Container $container): Container
103
    {
104
        $container->set(static::SERVICE_REQUEST_STACK, function (Container $container) {
105
            return $container->getApplicationService(static::SERVICE_REQUEST_STACK);
106
        });
107
108
        return $container;
109
    }
110
111
    /**
112
     * @param \Spryker\Yves\Kernel\Container $container
113
     *
114
     * @return \Spryker\Yves\Kernel\Container
115
     */
116
    protected function addUtilEncodingService(Container $container): Container
117
    {
118
        $container->set(static::SERVICE_UTIL_ENCODING, function (Container $container) {
119
            return new ComputopToUtilEncodingServiceBridge($container->getLocator()->utilEncoding()->service());
120
        });
121
122
        return $container;
123
    }
124
125
    /**
126
     * @param \Spryker\Yves\Kernel\Container $container
127
     *
128
     * @return \Spryker\Yves\Kernel\Container
129
     */
130
    protected function addCountryClient(Container $container): Container
131
    {
132
        $container->set(static::CLIENT_COUNTRY, function (Container $container) {
133
            return new ComputopToCountryClientBridge($container->getLocator()->country()->client());
134
        });
135
136
        return $container;
137
    }
138
}
139