ComputopDependencyProvider   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 82
Duplicated Lines 0 %

Importance

Changes 5
Bugs 0 Features 0
Metric Value
wmc 3
eloc 34
dl 0
loc 82
rs 10
c 5
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A provideCommunicationLayerDependencies() 0 15 1
A provideBusinessLayerDependencies() 0 29 1
A addRefundFacade() 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\Zed\Computop;
9
10
use Spryker\Shared\Kernel\Store;
11
use Spryker\Zed\Kernel\AbstractBundleDependencyProvider;
12
use Spryker\Zed\Kernel\Container;
13
use SprykerEco\Zed\Computop\Dependency\ComputopToStoreBridge;
14
use SprykerEco\Zed\Computop\Dependency\Facade\ComputopToCalculationFacadeBridge;
15
use SprykerEco\Zed\Computop\Dependency\Facade\ComputopToComputopApiFacadeBridge;
16
use SprykerEco\Zed\Computop\Dependency\Facade\ComputopToMessengerFacadeBridge;
17
use SprykerEco\Zed\Computop\Dependency\Facade\ComputopToMoneyFacadeBridge;
18
use SprykerEco\Zed\Computop\Dependency\Facade\ComputopToOmsFacadeBridge;
19
use SprykerEco\Zed\Computop\Dependency\Facade\ComputopToRefundFacadeBridge;
20
use SprykerEco\Zed\Computop\Dependency\Facade\ComputopToSalesFacadeBridge;
21
22
class ComputopDependencyProvider extends AbstractBundleDependencyProvider
23
{
24
    public const SERVICE_COMPUTOP_API = 'SERVICE_COMPUTOP_API';
25
    public const FACADE_OMS = 'FACADE_OMS';
26
    public const FACADE_MONEY = 'FACADE_MONEY';
27
    public const FACADE_SALES = 'FACADE_SALES';
28
    public const FACADE_CALCULATION = 'FACADE_CALCULATION';
29
    public const FACADE_FLASH_MESSENGER = 'FACADE_FLASH_MESSENGER';
30
    public const FACADE_COMPUTOP_API = 'FACADE_COMPUTOP_API';
31
    public const FACADE_REFUND = 'FACADE_REFUND';
32
    public const STORE = 'STORE';
33
34
    /**
35
     * @param \Spryker\Zed\Kernel\Container $container
36
     *
37
     * @return \Spryker\Zed\Kernel\Container
38
     */
39
    public function provideCommunicationLayerDependencies(Container $container)
40
    {
41
        $container = parent::provideCommunicationLayerDependencies($container);
42
43
        $container->set(static::FACADE_SALES, function (Container $container) {
44
            return new ComputopToSalesFacadeBridge($container->getLocator()->sales()->facade());
45
        });
46
47
        $container->set(static::FACADE_CALCULATION, function (Container $container) {
48
            return new ComputopToCalculationFacadeBridge($container->getLocator()->calculation()->facade());
49
        });
50
51
        $container = $this->addRefundFacade($container);
52
53
        return $container;
54
    }
55
56
    /**
57
     * @param \Spryker\Zed\Kernel\Container $container
58
     *
59
     * @return \Spryker\Zed\Kernel\Container
60
     */
61
    public function provideBusinessLayerDependencies(Container $container)
62
    {
63
        $container = parent::provideBusinessLayerDependencies($container);
64
65
        $container->set(static::SERVICE_COMPUTOP_API, function () use ($container) {
66
            return $container->getLocator()->computopApi()->service();
67
        });
68
69
        $container->set(static::FACADE_OMS, function () use ($container) {
70
            return new ComputopToOmsFacadeBridge($container->getLocator()->oms()->facade());
71
        });
72
73
        $container->set(static::STORE, function () {
74
            return new ComputopToStoreBridge(Store::getInstance());
75
        });
76
77
        $container->set(static::FACADE_FLASH_MESSENGER, function (Container $container) {
78
            return new ComputopToMessengerFacadeBridge($container->getLocator()->messenger()->facade());
79
        });
80
81
        $container->set(static::FACADE_MONEY, function (Container $container) {
82
            return new ComputopToMoneyFacadeBridge($container->getLocator()->money()->facade());
83
        });
84
85
        $container->set(static::FACADE_COMPUTOP_API, function (Container $container) {
86
            return new ComputopToComputopApiFacadeBridge($container->getLocator()->computopApi()->facade());
87
        });
88
89
        return $container;
90
    }
91
92
    /**
93
     * @param \Spryker\Zed\Kernel\Container $container
94
     *
95
     * @return \Spryker\Zed\Kernel\Container
96
     */
97
    protected function addRefundFacade(Container $container): Container
98
    {
99
        $container->set(static::FACADE_REFUND, function (Container $container) {
100
            return new ComputopToRefundFacadeBridge($container->getLocator()->refund()->facade());
101
        });
102
103
        return $container;
104
    }
105
}
106