Passed
Push — feature/eco-3656/eco-3658-enab... ( da021b...202423 )
by
unknown
04:29
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
use SprykerEco\Zed\Computop\Dependency\Facade\ComputopToShipmentFacadeBridge;
22
23
class ComputopDependencyProvider extends AbstractBundleDependencyProvider
24
{
25
    public const SERVICE_COMPUTOP_API = 'SERVICE_COMPUTOP_API';
26
    public const FACADE_OMS = 'FACADE_OMS';
27
    public const FACADE_MONEY = 'FACADE_MONEY';
28
    public const FACADE_SALES = 'FACADE_SALES';
29
    public const FACADE_CALCULATION = 'FACADE_CALCULATION';
30
    public const FACADE_FLASH_MESSENGER = 'FACADE_FLASH_MESSENGER';
31
    public const FACADE_COMPUTOP_API = 'FACADE_COMPUTOP_API';
32
    public const FACADE_REFUND = 'FACADE_REFUND';
33
    public const STORE = 'STORE';
34
    public const FACADE_SHIPMENT = 'FACADE_SHIPMENT';
35
36
    /**
37
     * @param \Spryker\Zed\Kernel\Container $container
38
     *
39
     * @return \Spryker\Zed\Kernel\Container
40
     */
41
    public function provideCommunicationLayerDependencies(Container $container): Container
42
    {
43
        $container = parent::provideCommunicationLayerDependencies($container);
44
45
        $container->set(static::FACADE_SALES, function (Container $container) {
46
            return new ComputopToSalesFacadeBridge($container->getLocator()->sales()->facade());
47
        });
48
49
        $container->set(static::FACADE_CALCULATION, function (Container $container) {
50
            return new ComputopToCalculationFacadeBridge($container->getLocator()->calculation()->facade());
51
        });
52
53
        $container = $this->addRefundFacade($container);
54
55
        return $container;
56
    }
57
58
    /**
59
     * @param \Spryker\Zed\Kernel\Container $container
60
     *
61
     * @return \Spryker\Zed\Kernel\Container
62
     */
63
    public function provideBusinessLayerDependencies(Container $container): Container
64
    {
65
        $container = parent::provideBusinessLayerDependencies($container);
66
67
        $container->set(static::SERVICE_COMPUTOP_API, function () use ($container) {
68
            return $container->getLocator()->computopApi()->service();
69
        });
70
71
        $container->set(static::FACADE_OMS, function () use ($container) {
72
            return new ComputopToOmsFacadeBridge($container->getLocator()->oms()->facade());
73
        });
74
75
        $container->set(static::STORE, function () {
76
            return new ComputopToStoreBridge(Store::getInstance());
77
        });
78
79
        $container->set(static::FACADE_FLASH_MESSENGER, function (Container $container) {
80
            return new ComputopToMessengerFacadeBridge($container->getLocator()->messenger()->facade());
81
        });
82
83
        $container->set(static::FACADE_MONEY, function (Container $container) {
84
            return new ComputopToMoneyFacadeBridge($container->getLocator()->money()->facade());
85
        });
86
87
        $container->set(static::FACADE_COMPUTOP_API, function (Container $container) {
88
            return new ComputopToComputopApiFacadeBridge($container->getLocator()->computopApi()->facade());
89
        });
90
91
        $container = $this->addShipmentFacade($container);
92
93
        return $container;
94
    }
95
96
    /**
97
     * @param \Spryker\Zed\Kernel\Container $container
98
     *
99
     * @return \Spryker\Zed\Kernel\Container
100
     */
101
    protected function addRefundFacade(Container $container): Container
102
    {
103
        $container->set(static::FACADE_REFUND, function (Container $container) {
104
            return new ComputopToRefundFacadeBridge($container->getLocator()->refund()->facade());
105
        });
106
107
        return $container;
108
    }
109
110
    /**
111
     * @param \Spryker\Zed\Kernel\Container $container
112
     *
113
     * @return \Spryker\Zed\Kernel\Container
114
     */
115
    protected function addShipmentFacade(Container $container): Container
116
    {
117
        $container->set(static::FACADE_SHIPMENT, function (Container $container) {
118
            return new ComputopToShipmentFacadeBridge($container->getLocator()->shipment()->facade());
119
        });
120
121
        return $container;
122
    }
123
}
124