createShipmentHandler()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 6
dl 0
loc 8
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
/**
4
 * MIT License
5
 * For full license information, please view the LICENSE file that was distributed with this source code.
6
 */
7
8
namespace SprykerEco\Zed\Sevensenders\Business;
9
10
use Spryker\Zed\Kernel\Business\AbstractBusinessFactory;
11
use SprykerEco\Zed\Sevensenders\Business\Api\Adapter\AdapterInterface;
12
use SprykerEco\Zed\Sevensenders\Business\Api\Adapter\SevensendersApiAdapter;
13
use SprykerEco\Zed\Sevensenders\Business\Handler\HandlerInterface;
14
use SprykerEco\Zed\Sevensenders\Business\Handler\OrderHandler;
15
use SprykerEco\Zed\Sevensenders\Business\Handler\ShipmentHandler;
16
use SprykerEco\Zed\Sevensenders\Business\Helper\OrderResponseHelper;
17
use SprykerEco\Zed\Sevensenders\Business\Helper\ResponseHelperInterface;
18
use SprykerEco\Zed\Sevensenders\Business\Helper\ShipmentResponseHelper;
19
use SprykerEco\Zed\Sevensenders\Business\Mapper\MapperInterface;
20
use SprykerEco\Zed\Sevensenders\Business\Mapper\OrderMapper;
21
use SprykerEco\Zed\Sevensenders\Business\Mapper\ShipmentMapper;
22
use SprykerEco\Zed\Sevensenders\Dependency\Facade\SevensendersToSalesFacadeInterface;
23
use SprykerEco\Zed\Sevensenders\Dependency\Service\SevensendersToUtilEncodingServiceInterface;
24
use SprykerEco\Zed\Sevensenders\SevensendersDependencyProvider;
25
26
/**
27
 * @method \SprykerEco\Zed\Sevensenders\SevensendersConfig getConfig()
28
 * @method \SprykerEco\Zed\Sevensenders\Persistence\SevensendersRepositoryInterface getRepository()
29
 * @method \SprykerEco\Zed\Sevensenders\Persistence\SevensendersEntityManager getEntityManager()
30
 */
31
class SevensendersBusinessFactory extends AbstractBusinessFactory
32
{
33
    /**
34
     * @return \SprykerEco\Zed\Sevensenders\Business\Handler\HandlerInterface
35
     */
36
    public function createOrderHandler(): HandlerInterface
37
    {
38
        return new OrderHandler(
39
            $this->createOrderMapper(),
40
            $this->createSevensendersApiAdapter(),
41
            $this->getFacadeSales(),
42
            $this->getEntityManager(),
43
            $this->getUtilEncodingService()
44
        );
45
    }
46
47
    /**
48
     * @return \SprykerEco\Zed\Sevensenders\Business\Handler\HandlerInterface
49
     */
50
    public function createShipmentHandler(): HandlerInterface
51
    {
52
        return new ShipmentHandler(
53
            $this->createShipmentMapper(),
54
            $this->createSevensendersApiAdapter(),
55
            $this->getFacadeSales(),
56
            $this->getEntityManager(),
57
            $this->getUtilEncodingService()
58
        );
59
    }
60
61
    /**
62
     * @return \SprykerEco\Zed\Sevensenders\Business\Helper\ResponseHelperInterface
63
     */
64
    public function createOrderResponseHelper(): ResponseHelperInterface
65
    {
66
        return new OrderResponseHelper($this->getRepository());
67
    }
68
69
    /**
70
     * @return \SprykerEco\Zed\Sevensenders\Business\Helper\ResponseHelperInterface
71
     */
72
    public function createShipmentResponseHelper(): ResponseHelperInterface
73
    {
74
        return new ShipmentResponseHelper($this->getRepository());
75
    }
76
77
    /**
78
     * @return \SprykerEco\Zed\Sevensenders\Business\Mapper\MapperInterface
79
     */
80
    protected function createOrderMapper(): MapperInterface
81
    {
82
        return new OrderMapper();
83
    }
84
85
    /**
86
     * @return \SprykerEco\Zed\Sevensenders\Business\Mapper\MapperInterface
87
     */
88
    protected function createShipmentMapper(): MapperInterface
89
    {
90
        return new ShipmentMapper();
91
    }
92
93
    /**
94
     * @return \SprykerEco\Zed\Sevensenders\Dependency\Facade\SevensendersToSalesFacadeInterface
95
     */
96
    protected function getFacadeSales(): SevensendersToSalesFacadeInterface
97
    {
98
        return $this->getProvidedDependency(SevensendersDependencyProvider::FACADE_SALES);
99
    }
100
101
    /**
102
     * @return \SprykerEco\Zed\Sevensenders\Dependency\Service\SevensendersToUtilEncodingServiceInterface
103
     */
104
    protected function getUtilEncodingService(): SevensendersToUtilEncodingServiceInterface
105
    {
106
        return $this->getProvidedDependency(SevensendersDependencyProvider::UTIL_ENCODING_SERVICE);
107
    }
108
109
    /**
110
     * @return \SprykerEco\Zed\Sevensenders\Business\Api\Adapter\AdapterInterface
111
     */
112
    protected function createSevensendersApiAdapter(): AdapterInterface
113
    {
114
        return new SevensendersApiAdapter($this->getConfig(), $this->getUtilEncodingService());
115
    }
116
}
117