Completed
Push — master ( 9db63e...40913a )
by Oleksandr
24s queued 13s
created

PayoneDependencyProvider   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 76
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 3
eloc 28
c 2
b 0
f 0
dl 0
loc 76
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A addQuoteClient() 0 7 1
A provideDependencies() 0 26 1
A addClientStore() 0 9 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\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
use SprykerEco\Yves\Payone\Dependency\Client\PayoneToStoreClientBridge;
18
19
class PayoneDependencyProvider extends AbstractBundleDependencyProvider
20
{
21
    public const CLIENT_PAYONE = 'payone client';
22
23
    public const CLIENT_CUSTOMER = 'customer client';
24
25
    public const CLIENT_CART = 'cart client';
26
27
    public const CLIENT_SHIPMENT = 'shipment client';
28
29
    public const CLIENT_CALCULATION = 'calculation client';
30
    public const CLIENT_QUOTE = 'CLIENT_QUOTE';
31
32
    public const CLIENT_STORE = 'CLIENT_STORE';
33
34
    /**
35
     * @param \Spryker\Yves\Kernel\Container $container
36
     *
37
     * @return \Spryker\Yves\Kernel\Container
38
     */
39
    public function provideDependencies(Container $container)
40
    {
41
        $container->set(static::CLIENT_PAYONE, function (Container $container) {
42
            return $container->getLocator()->payone()->client();
43
        });
44
45
        $container->set(static::CLIENT_CUSTOMER, function (Container $container) {
46
            return new PayoneToCustomerBridge($container->getLocator()->customer()->client());
47
        });
48
49
        $container->set(static::CLIENT_CART, function (Container $container) {
50
            return new PayoneToCartBridge($container->getLocator()->cart()->client());
51
        });
52
53
        $container->set(static::CLIENT_SHIPMENT, function (Container $container) {
54
            return new PayoneToShipmentBridge($container->getLocator()->shipment()->client());
55
        });
56
57
        $container->set(static::CLIENT_CALCULATION, function (Container $container) {
58
            return new PayoneToCalculationBridge($container->getLocator()->calculation()->client());
59
        });
60
61
        $container = $this->addQuoteClient($container);
62
        $container = $this->addClientStore($container);
63
64
        return $container;
65
    }
66
67
    /**
68
     * @param \Spryker\Yves\Kernel\Container $container
69
     *
70
     * @return \Spryker\Yves\Kernel\Container
71
     */
72
    protected function addQuoteClient(Container $container): Container
73
    {
74
        $container->set(static::CLIENT_QUOTE, function (Container $container) {
75
            return new PayoneToQuoteClientBridge($container->getLocator()->quote()->client());
76
        });
77
78
        return $container;
79
    }
80
81
    /**
82
     * @param \Spryker\Yves\Kernel\Container $container
83
     *
84
     * @return \Spryker\Yves\Kernel\Container
85
     */
86
    protected function addClientStore(Container $container): Container
87
    {
88
        $container->set(static::CLIENT_STORE, function (Container $container) {
89
            return new PayoneToStoreClientBridge(
90
                $container->getLocator()->store()->client()
91
            );
92
        });
93
94
        return $container;
95
    }
96
}
97