Passed
Pull Request — master (#29)
by Aleksey
08:31 queued 03:27
created

AmazonPayDependencyProvider::addMessengerClient()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 7
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * Apache OSL-2
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerEco\Yves\AmazonPay;
9
10
use Spryker\Yves\Kernel\AbstractBundleDependencyProvider;
11
use Spryker\Yves\Kernel\Container;
12
use SprykerEco\Yves\AmazonPay\Dependency\Client\AmazonPayToCalculationBridge;
13
use SprykerEco\Yves\AmazonPay\Dependency\Client\AmazonPayToCartBridge;
14
use SprykerEco\Yves\AmazonPay\Dependency\Client\AmazonPayToCheckoutBridge;
15
use SprykerEco\Yves\AmazonPay\Dependency\Client\AmazonPayToCustomerBridge;
16
use SprykerEco\Yves\AmazonPay\Dependency\Client\AmazonPayToGlossaryStorageBridge;
17
use SprykerEco\Yves\AmazonPay\Dependency\Client\AmazonPayToMessengerClientBridge;
18
use SprykerEco\Yves\AmazonPay\Dependency\Client\AmazonPayToQuoteBridge;
19
use SprykerEco\Yves\AmazonPay\Dependency\Client\AmazonPayToShipmentBridge;
20
21
class AmazonPayDependencyProvider extends AbstractBundleDependencyProvider
22
{
23
    public const CLIENT_QUOTE = 'quote client';
24
    public const CLIENT_CART = 'cart client';
25
    public const CLIENT_SHIPMENT = 'shipment client';
26
    public const CLIENT_CHECKOUT = 'checkout client';
27
    public const CLIENT_CUSTOMER = 'customer client';
28
    public const CLIENT_CALCULATION = 'calculation client';
29
    public const CLIENT_GLOSSARY_STORAGE = 'glossary storage client';
30
    public const CLIENT_MESSENGER = 'CLIENT_MESSENGER';
31
    public const PLUGIN_CHECKOUT_BREADCRUMB = 'plugin checkout breadcrumb';
32
33
    /**
34
     * @param \Spryker\Yves\Kernel\Container $container
35
     *
36
     * @return \Spryker\Yves\Kernel\Container
37
     */
38
    public function provideDependencies(Container $container)
39
    {
40
        $this->addQuoteClient($container);
41
        $this->addCartClient($container);
42
        $this->addShipmentClient($container);
43
        $this->addCheckoutClient($container);
44
        $this->addCalculationClient($container);
45
        $this->addCustomerClient($container);
46
        $this->addGlossaryStorageClient($container);
47
48
        $container = $this->addMessengerClient($container);
49
50
        return $container;
51
    }
52
53
    /**
54
     * @param \Spryker\Yves\Kernel\Container $container
55
     *
56
     * @return void
57
     */
58
    protected function addQuoteClient(Container $container)
59
    {
60
        $container[static::CLIENT_QUOTE] = function () use ($container) {
61
            return new AmazonPayToQuoteBridge($container->getLocator()->quote()->client());
62
        };
63
    }
64
65
    /**
66
     * @param \Spryker\Yves\Kernel\Container $container
67
     *
68
     * @return void
69
     */
70
    protected function addCartClient(Container $container)
71
    {
72
        $container[static::CLIENT_CART] = function () use ($container) {
73
            return new AmazonPayToCartBridge($container->getLocator()->cart()->client());
74
        };
75
    }
76
77
    /**
78
     * @param \Spryker\Yves\Kernel\Container $container
79
     *
80
     * @return void
81
     */
82
    protected function addShipmentClient(Container $container)
83
    {
84
        $container[static::CLIENT_SHIPMENT] = function () use ($container) {
85
            return new AmazonPayToShipmentBridge($container->getLocator()->shipment()->client());
86
        };
87
    }
88
89
    /**
90
     * @param \Spryker\Yves\Kernel\Container $container
91
     *
92
     * @return void
93
     */
94
    protected function addCheckoutClient(Container $container)
95
    {
96
        $container[static::CLIENT_CHECKOUT] = function () use ($container) {
97
            return new AmazonPayToCheckoutBridge($container->getLocator()->checkout()->client());
98
        };
99
    }
100
101
    /**
102
     * @param \Spryker\Yves\Kernel\Container $container
103
     *
104
     * @return void
105
     */
106
    protected function addCalculationClient(Container $container)
107
    {
108
        $container[static::CLIENT_CALCULATION] = function () use ($container) {
109
            return new AmazonPayToCalculationBridge($container->getLocator()->calculation()->client());
110
        };
111
    }
112
113
    /**
114
     * @param \Spryker\Yves\Kernel\Container $container
115
     *
116
     * @return void
117
     */
118
    protected function addCustomerClient(Container $container)
119
    {
120
        $container[static::CLIENT_CUSTOMER] = function () use ($container) {
121
            return new AmazonPayToCustomerBridge($container->getLocator()->customer()->client());
122
        };
123
    }
124
125
    /**
126
     * @param \Spryker\Yves\Kernel\Container $container
127
     *
128
     * @return void
129
     */
130
    protected function addGlossaryStorageClient(Container $container)
131
    {
132
        $container[static::CLIENT_GLOSSARY_STORAGE] = function () use ($container) {
133
            return new AmazonPayToGlossaryStorageBridge($container->getLocator()->glossaryStorage()->client());
134
        };
135
    }
136
137
    /**
138
     * @param \Spryker\Yves\Kernel\Container $container
139
     *
140
     * @return \Spryker\Yves\Kernel\Container
141
     */
142
    protected function addMessengerClient(Container $container): Container
143
    {
144
        $container->set(static::CLIENT_MESSENGER, function (Container $container) {
145
            return new AmazonPayToMessengerClientBridge($container->getLocator()->messenger()->client());
146
        });
147
148
        return $container;
149
    }
150
}
151