Passed
Pull Request — master (#23)
by Aleksey
09:29 queued 06:06
created

ArvatoRssBusinessFactory::createArvatoRssWriter()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 0
dl 0
loc 5
rs 10
c 0
b 0
f 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\ArvatoRss\Business;
9
10
use Spryker\Zed\Kernel\Business\AbstractBusinessFactory;
11
use SprykerEco\Service\ArvatoRss\Iso3166ConverterService;
12
use SprykerEco\Service\ArvatoRss\Iso3166ConverterServiceInterface;
13
use SprykerEco\Zed\ArvatoRss\ArvatoRssDependencyProvider;
14
use SprykerEco\Zed\ArvatoRss\Business\Api\Adapter\AdapterFactory;
15
use SprykerEco\Zed\ArvatoRss\Business\Api\Adapter\AdapterFactoryInterface;
16
use SprykerEco\Zed\ArvatoRss\Business\Api\Adapter\ApiAdapterInterface;
17
use SprykerEco\Zed\ArvatoRss\Business\Api\Adapter\SoapApiAdapter;
18
use SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\Aspect\BillingCustomerMapper;
19
use SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\Aspect\BillingCustomerMapperInterface;
20
use SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\Aspect\DeliveryCustomerMapper;
21
use SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\Aspect\DeliveryCustomerMapperInterface;
22
use SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\Aspect\IdentificationMapper;
23
use SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\Aspect\IdentificationMapperInterface;
24
use SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\Aspect\OrderMapper;
25
use SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\Aspect\OrderMapperInterface;
26
use SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\RiskCheckRequestMapper;
27
use SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\RiskCheckRequestMapperInterface;
28
use SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\RiskCheckResponseMapper;
29
use SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\RiskCheckResponseMapperInterface;
30
use SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\StoreOrderRequestMapper;
31
use SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\StoreOrderRequestMapperInterface;
32
use SprykerEco\Zed\ArvatoRss\Business\Handler\RiskCheckHandler;
33
use SprykerEco\Zed\ArvatoRss\Business\Handler\RiskCheckHandlerInterface;
34
use SprykerEco\Zed\ArvatoRss\Business\Handler\StoreOrderHandler;
35
use SprykerEco\Zed\ArvatoRss\Business\Handler\StoreOrderHandlerInterface;
36
use SprykerEco\Zed\ArvatoRss\Business\Reader\ArvatoRssReader;
37
use SprykerEco\Zed\ArvatoRss\Business\Reader\ArvatoRssReaderInterface;
38
use SprykerEco\Zed\ArvatoRss\Business\Writer\ArvatoRssWriter;
39
use SprykerEco\Zed\ArvatoRss\Business\Writer\ArvatoRssWriterInterface;
40
use SprykerEco\Zed\ArvatoRss\Dependency\Facade\ArvatoRssToMoneyInterface;
41
use SprykerEco\Zed\ArvatoRss\Dependency\Facade\ArvatoRssToStoreInterface;
42
43
/**
44
 * @method \SprykerEco\Zed\ArvatoRss\ArvatoRssConfig getConfig()
45
 * @method \SprykerEco\Zed\ArvatoRss\Persistence\ArvatoRssQueryContainerInterface getQueryContainer()
46
 * @method \SprykerEco\Zed\ArvatoRss\Persistence\ArvatoRssRepositoryInterface getRepository()
47
 * @method \SprykerEco\Zed\ArvatoRss\Persistence\ArvatoRssEntityManagerInterface getEntityManager()
48
 */
49
class ArvatoRssBusinessFactory extends AbstractBusinessFactory
50
{
51
    /**
52
     * @return \SprykerEco\Zed\ArvatoRss\Business\Handler\RiskCheckHandlerInterface
53
     */
54
    public function createRiskCheckHandler(): RiskCheckHandlerInterface
55
    {
56
        return new RiskCheckHandler(
57
            $this->createRiskCheckRequestMapper(),
58
            $this->createRiskCheckResponseMapper(),
59
            $this->createSoapApiAdapter()
60
        );
61
    }
62
63
    /**
64
     * @return \SprykerEco\Zed\ArvatoRss\Business\Handler\StoreOrderHandlerInterface
65
     */
66
    public function createStoreOrderHandler(): StoreOrderHandlerInterface
67
    {
68
        return new StoreOrderHandler(
69
            $this->createStoreOrderRequestMapper(),
70
            $this->createSoapApiAdapter()
71
        );
72
    }
73
74
    /**
75
     * @return \SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\StoreOrderRequestMapperInterface
76
     */
77
    public function createStoreOrderRequestMapper(): StoreOrderRequestMapperInterface
78
    {
79
        return new StoreOrderRequestMapper(
80
            $this->createIdentificationMapper(),
81
            $this->createOrderMapper(),
82
            $this->getConfig(),
83
            $this->createArvatoRssReader()
84
        );
85
    }
86
87
    /**
88
     * @return \SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\RiskCheckRequestMapperInterface
89
     */
90
    public function createRiskCheckRequestMapper(): RiskCheckRequestMapperInterface
91
    {
92
        return new RiskCheckRequestMapper(
93
            $this->createIdentificationMapper(),
94
            $this->createBillingCustomerMapper(),
95
            $this->createDeliveryCustomerMapper(),
96
            $this->createOrderMapper()
97
        );
98
    }
99
100
    /**
101
     * @return \SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\Aspect\IdentificationMapperInterface
102
     */
103
    public function createIdentificationMapper(): IdentificationMapperInterface
104
    {
105
        return new IdentificationMapper(
106
            $this->getConfig()
107
        );
108
    }
109
110
    /**
111
     * @return \SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\Aspect\BillingCustomerMapperInterface
112
     */
113
    public function createBillingCustomerMapper(): BillingCustomerMapperInterface
114
    {
115
        return new BillingCustomerMapper(
116
            $this->createIso3166Converter()
117
        );
118
    }
119
120
    /**
121
     * @return \SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\Aspect\DeliveryCustomerMapperInterface
122
     */
123
    public function createDeliveryCustomerMapper(): DeliveryCustomerMapperInterface
124
    {
125
        return new DeliveryCustomerMapper(
126
            $this->createIso3166Converter()
127
        );
128
    }
129
130
    /**
131
     * @return \SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\Aspect\OrderMapperInterface
132
     */
133
    public function createOrderMapper(): OrderMapperInterface
134
    {
135
        return new OrderMapper(
136
            $this->getMoneyFacade(),
137
            $this->getStoreFacade()
138
        );
139
    }
140
141
    /**
142
     * @return \SprykerEco\Zed\ArvatoRss\Dependency\Facade\ArvatoRssToStoreInterface
143
     */
144
    public function getStoreFacade(): ArvatoRssToStoreInterface
145
    {
146
        return $this->getProvidedDependency(ArvatoRssDependencyProvider::FACADE_STORE);
147
    }
148
149
    /**
150
     * @return \SprykerEco\Zed\ArvatoRss\Business\Api\Mapper\RiskCheckResponseMapperInterface
151
     */
152
    public function createRiskCheckResponseMapper(): RiskCheckResponseMapperInterface
153
    {
154
        return new RiskCheckResponseMapper();
155
    }
156
157
    /**
158
     * @return \SprykerEco\Zed\ArvatoRss\Business\Api\Adapter\ApiAdapterInterface
159
     */
160
    public function createSoapApiAdapter(): ApiAdapterInterface
161
    {
162
        return new SoapApiAdapter($this->createAdapterFactory());
163
    }
164
165
    /**
166
     * @return \SprykerEco\Zed\ArvatoRss\Dependency\Facade\ArvatoRssToMoneyInterface
167
     */
168
    public function getMoneyFacade(): ArvatoRssToMoneyInterface
169
    {
170
        return $this->getProvidedDependency(ArvatoRssDependencyProvider::FACADE_MONEY);
171
    }
172
173
    /**
174
     * @return \SprykerEco\Service\ArvatoRss\Iso3166ConverterServiceInterface
175
     */
176
    public function createIso3166Converter(): Iso3166ConverterServiceInterface
177
    {
178
        return new Iso3166ConverterService();
179
    }
180
181
    /**
182
     * @return \SprykerEco\Zed\ArvatoRss\Business\Api\Adapter\AdapterFactoryInterface
183
     */
184
    public function createAdapterFactory(): AdapterFactoryInterface
185
    {
186
        return new AdapterFactory();
187
    }
188
189
    /**
190
     * @return \SprykerEco\Zed\ArvatoRss\Business\Reader\ArvatoRssReaderInterface
191
     */
192
    public function createArvatoRssReader(): ArvatoRssReaderInterface
193
    {
194
        return new ArvatoRssReader($this->getRepository());
195
    }
196
197
    /**
198
     * @return \SprykerEco\Zed\ArvatoRss\Business\Writer\ArvatoRssWriterInterface
199
     */
200
    public function createArvatoRssWriter(): ArvatoRssWriterInterface
201
    {
202
        return new ArvatoRssWriter(
203
            $this->getRepository(),
204
            $this->getEntityManager()
205
        );
206
    }
207
}
208