Passed
Push — feature/eco-3656/eco-3658-enab... ( 522204...dfb610 )
by
unknown
04:02
created

ComputopDependencyProvider::addShipmentFacade()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
c 0
b 0
f 0
dl 0
loc 7
rs 10
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\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
    /**
25
     * @var string
26
     */
27
    public const SERVICE_COMPUTOP_API = 'SERVICE_COMPUTOP_API';
28
    /**
29
     * @var string
30
     */
31
    public const FACADE_OMS = 'FACADE_OMS';
32
    /**
33
     * @var string
34
     */
35
    public const FACADE_MONEY = 'FACADE_MONEY';
36
    /**
37
     * @var string
38
     */
39
    public const FACADE_SALES = 'FACADE_SALES';
40
    /**
41
     * @var string
42
     */
43
    public const FACADE_CALCULATION = 'FACADE_CALCULATION';
44
    /**
45
     * @var string
46
     */
47
    public const FACADE_FLASH_MESSENGER = 'FACADE_FLASH_MESSENGER';
48
    /**
49
     * @var string
50
     */
51
    public const FACADE_COMPUTOP_API = 'FACADE_COMPUTOP_API';
52
    /**
53
     * @var string
54
     */
55
    public const FACADE_REFUND = 'FACADE_REFUND';
56
    /**
57
     * @var string
58
     */
59
    public const STORE = 'STORE';
60
61
    /**
62
     * @param \Spryker\Zed\Kernel\Container $container
63
     *
64
     * @return \Spryker\Zed\Kernel\Container
65
     */
66
    public function provideCommunicationLayerDependencies(Container $container): Container
67
    {
68
        $container = parent::provideCommunicationLayerDependencies($container);
69
70
        $container->set(static::FACADE_SALES, function (Container $container) {
71
            return new ComputopToSalesFacadeBridge($container->getLocator()->sales()->facade());
72
        });
73
74
        $container->set(static::FACADE_CALCULATION, function (Container $container) {
75
            return new ComputopToCalculationFacadeBridge($container->getLocator()->calculation()->facade());
76
        });
77
78
        $container = $this->addRefundFacade($container);
79
80
        return $container;
81
    }
82
83
    /**
84
     * @param \Spryker\Zed\Kernel\Container $container
85
     *
86
     * @return \Spryker\Zed\Kernel\Container
87
     */
88
    public function provideBusinessLayerDependencies(Container $container): Container
89
    {
90
        $container = parent::provideBusinessLayerDependencies($container);
91
92
        $container->set(static::SERVICE_COMPUTOP_API, function () use ($container) {
93
            return $container->getLocator()->computopApi()->service();
94
        });
95
96
        $container->set(static::FACADE_OMS, function () use ($container) {
97
            return new ComputopToOmsFacadeBridge($container->getLocator()->oms()->facade());
98
        });
99
100
        $container->set(static::STORE, function () {
101
            return new ComputopToStoreBridge(Store::getInstance());
102
        });
103
104
        $container->set(static::FACADE_FLASH_MESSENGER, function (Container $container) {
105
            return new ComputopToMessengerFacadeBridge($container->getLocator()->messenger()->facade());
106
        });
107
108
        $container->set(static::FACADE_MONEY, function (Container $container) {
109
            return new ComputopToMoneyFacadeBridge($container->getLocator()->money()->facade());
110
        });
111
112
        $container->set(static::FACADE_COMPUTOP_API, function (Container $container) {
113
            return new ComputopToComputopApiFacadeBridge($container->getLocator()->computopApi()->facade());
114
        });
115
116
        return $container;
117
    }
118
119
    /**
120
     * @param \Spryker\Zed\Kernel\Container $container
121
     *
122
     * @return \Spryker\Zed\Kernel\Container
123
     */
124
    protected function addRefundFacade(Container $container): Container
125
    {
126
        $container->set(static::FACADE_REFUND, function (Container $container) {
127
            return new ComputopToRefundFacadeBridge($container->getLocator()->refund()->facade());
128
        });
129
130
        return $container;
131
    }
132
}
133