Passed
Pull Request — master (#51)
by Aleksey
12:12
created

PayoneDependencyProvider::addQuoteClient()   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
c 0
b 0
f 0
nc 1
nop 1
dl 0
loc 7
rs 10
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\Payone;
9
10
use Spryker\Yves\Kernel\AbstractBundleDependencyProvider;
11
use Spryker\Yves\Kernel\Container;
12
use SprykerEco\Yves\Payone\Dependency\Client\PayoneToCalculationBridge;
13
use SprykerEco\Yves\Payone\Dependency\Client\PayoneToCartBridge;
14
use SprykerEco\Yves\Payone\Dependency\Client\PayoneToCustomerBridge;
15
use SprykerEco\Yves\Payone\Dependency\Client\PayoneToQuoteClientBridge;
16
use SprykerEco\Yves\Payone\Dependency\Client\PayoneToShipmentBridge;
17
18
class PayoneDependencyProvider extends AbstractBundleDependencyProvider
19
{
20
    public const CLIENT_PAYONE = 'payone client';
21
22
    public const CLIENT_CUSTOMER = 'customer client';
23
24
    public const CLIENT_CART = 'cart client';
25
26
    public const CLIENT_SHIPMENT = 'shipment client';
27
28
    public const CLIENT_CALCULATION = 'calculation client';
29
    public const CLIENT_QUOTE = 'CLIENT_QUOTE';
30
31
    /**
32
     * @param \Spryker\Yves\Kernel\Container $container
33
     *
34
     * @return \Spryker\Yves\Kernel\Container
35
     */
36
    public function provideDependencies(Container $container)
37
    {
38
        $container[self::CLIENT_PAYONE] = function (Container $container) {
39
            return $container->getLocator()->payone()->client();
40
        };
41
42
        $container[self::CLIENT_CUSTOMER] = function (Container $container) {
43
            return new PayoneToCustomerBridge($container->getLocator()->customer()->client());
44
        };
45
46
        $container[self::CLIENT_CART] = function (Container $container) {
47
            return new PayoneToCartBridge($container->getLocator()->cart()->client());
48
        };
49
50
        $container[self::CLIENT_SHIPMENT] = function (Container $container) {
51
            return new PayoneToShipmentBridge($container->getLocator()->shipment()->client());
52
        };
53
54
        $container[self::CLIENT_CALCULATION] = function (Container $container) {
55
            return new PayoneToCalculationBridge($container->getLocator()->calculation()->client());
56
        };
57
58
        $container = $this->addQuoteClient($container);
59
60
        return $container;
61
    }
62
63
    /**
64
     * @param \Spryker\Yves\Kernel\Container $container
65
     *
66
     * @return \Spryker\Yves\Kernel\Container
67
     */
68
    protected function addQuoteClient(Container $container): Container
69
    {
70
        $container->set(static::CLIENT_QUOTE, function (Container $container) {
71
            return new PayoneToQuoteClientBridge($container->getLocator()->quote()->client());
72
        });
73
74
        return $container;
75
    }
76
}
77