Passed
Push — feature/eco-3656/eco-3658-enab... ( b8ae93...66641f )
by
unknown
04:22
created

ComputopBusinessFactory   D

Complexity

Total Complexity 58

Size/Duplication

Total Lines 565
Duplicated Lines 0 %

Importance

Changes 6
Bugs 0 Features 0
Metric Value
wmc 58
eloc 135
c 6
b 0
f 0
dl 0
loc 565
rs 4.5599

58 Methods

Rating   Name   Duplication   Size   Complexity  
A createInquireHandler() 0 5 1
A createCaptureHandler() 0 5 1
A createNotificationProcessor() 0 3 1
A createPaymentMethodFilter() 0 3 1
A createOrderFactory() 0 3 1
A createPayPalExpressCompleteResponseSaver() 0 6 1
A createCancelManager() 0 3 1
A createRefundSaver() 0 6 1
A createReverseHandler() 0 5 1
A createEasyCreditAuthorizeHandler() 0 5 1
A getOmsFacade() 0 3 1
A createComputopResponseLogger() 0 3 1
A createDirectDebitResponseSaver() 0 3 1
A createQuoteDefaultShippingMethodExpander() 0 5 1
A createCrifSaver() 0 6 1
A createAuthorizeCommandHandler() 0 5 1
A createCreditCardResponseSaver() 0 3 1
A createRefundCommandHandler() 0 5 1
A createPostSaveDirectDebit() 0 3 1
A createPostSaveHook() 0 14 1
A getStore() 0 3 1
A createPostSaveCreditCart() 0 3 1
A createPaymentReader() 0 3 1
A createCaptureManager() 0 3 1
A createPostSavePayNowMapper() 0 3 1
A createPostSaveEasyCredit() 0 3 1
A createOrderSaver() 0 15 1
A createPostSavePayPalExpressMapper() 0 3 1
A createPostSaveIdealMapper() 0 3 1
A getShipmentFacade() 0 3 1
A createCaptureCommandHandler() 0 5 1
A createRefundManager() 0 3 1
A createCaptureSaver() 0 6 1
A createIdealResponseSaver() 0 3 1
A createCancelCommandHandler() 0 7 1
A createCrifHandler() 0 6 1
A createPayPalResponseSaver() 0 3 1
A getFlashMessengerFacade() 0 3 1
A createPostSavePayPal() 0 3 1
A createReverseSaver() 0 6 1
A createPayPalExpressResponseSaver() 0 6 1
A createPostSavePaydirektMapper() 0 3 1
A createRefundHandler() 0 5 1
A getComputopApiService() 0 3 1
A createAuthorizeManager() 0 3 1
A createPayNowResponseSaver() 0 3 1
A createEasyCreditResponseSaver() 0 3 1
A getMoneyFacade() 0 3 1
A getComputopApiFacade() 0 3 1
A createComputopLogger() 0 3 1
A createSofortResponseSaver() 0 3 1
A createEasyCreditStatusHandler() 0 6 1
A createEasyCreditAuthorizeCommandHandler() 0 5 1
A createPaydirektResponseSaver() 0 3 1
A createInquireSaver() 0 6 1
A createAuthorizeHandler() 0 5 1
A createAuthorizeSaver() 0 6 1
A createPostSaveSofortMapper() 0 3 1

How to fix   Complexity   

Complex Class

Complex classes like ComputopBusinessFactory often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

While breaking up the class, it is a good idea to analyze how other classes use ComputopBusinessFactory, and based on these observations, apply Extract Interface, too.

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\Business;
9
10
use Spryker\Zed\Kernel\Business\AbstractBusinessFactory;
11
use SprykerEco\Service\ComputopApi\ComputopApiServiceInterface;
12
use SprykerEco\Zed\Computop\Business\DefaultShippingMethodQuoteExpander\QuoteDefaultShippingMethodExpander;
13
use SprykerEco\Zed\Computop\Business\DefaultShippingMethodQuoteExpander\QuoteDefaultShippingMethodExpanderInterface;
14
use SprykerEco\Zed\Computop\Business\Hook\ComputopPostSaveHook;
15
use SprykerEco\Zed\Computop\Business\Hook\ComputopPostSaveHookInterface;
16
use SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitCreditCardMapper;
17
use SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitDirectDebitMapper;
18
use SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitEasyCreditMapper;
19
use SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitIdealMapper;
20
use SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitMapperInterface;
21
use SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitPaydirektMapper;
22
use SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitPayNowMapper;
23
use SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitPayPalExpressMapper;
24
use SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitPayPalMapper;
25
use SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitSofortMapper;
26
use SprykerEco\Zed\Computop\Business\Logger\ComputopResponseLogger as ComputopLogger;
27
use SprykerEco\Zed\Computop\Business\Logger\LoggerInterface;
28
use SprykerEco\Zed\Computop\Business\Oms\Command\AuthorizeCommandHandler;
29
use SprykerEco\Zed\Computop\Business\Oms\Command\CancelCommandHandler;
30
use SprykerEco\Zed\Computop\Business\Oms\Command\CaptureCommandHandler;
31
use SprykerEco\Zed\Computop\Business\Oms\Command\CommandHandlerInterface;
32
use SprykerEco\Zed\Computop\Business\Oms\Command\Manager\AuthorizeManager;
33
use SprykerEco\Zed\Computop\Business\Oms\Command\Manager\CancelManager;
34
use SprykerEco\Zed\Computop\Business\Oms\Command\Manager\CancelManagerInterface;
35
use SprykerEco\Zed\Computop\Business\Oms\Command\Manager\CaptureManager;
36
use SprykerEco\Zed\Computop\Business\Oms\Command\Manager\ManagerInterface;
37
use SprykerEco\Zed\Computop\Business\Oms\Command\Manager\RefundManager;
38
use SprykerEco\Zed\Computop\Business\Oms\Command\RefundCommandHandler;
39
use SprykerEco\Zed\Computop\Business\Order\ComputopBusinessOrderFactory;
40
use SprykerEco\Zed\Computop\Business\Order\ComputopBusinessOrderFactoryInterface;
41
use SprykerEco\Zed\Computop\Business\Order\OrderManager;
42
use SprykerEco\Zed\Computop\Business\Order\OrderManagerInterface;
43
use SprykerEco\Zed\Computop\Business\Payment\Handler\Logger\ComputopResponseLogger;
44
use SprykerEco\Zed\Computop\Business\Payment\Handler\Logger\ComputopResponseLoggerInterface;
45
use SprykerEco\Zed\Computop\Business\Payment\Handler\PostPlace\AuthorizeHandler;
46
use SprykerEco\Zed\Computop\Business\Payment\Handler\PostPlace\CaptureHandler;
47
use SprykerEco\Zed\Computop\Business\Payment\Handler\PostPlace\EasyCreditAuthorizeHandler;
48
use SprykerEco\Zed\Computop\Business\Payment\Handler\PostPlace\HandlerInterface as PostPlaceHandlerInterface;
49
use SprykerEco\Zed\Computop\Business\Payment\Handler\PostPlace\InquireHandler;
50
use SprykerEco\Zed\Computop\Business\Payment\Handler\PostPlace\RefundHandler;
51
use SprykerEco\Zed\Computop\Business\Payment\Handler\PostPlace\ReverseHandler;
52
use SprykerEco\Zed\Computop\Business\Payment\Handler\PrePlace\EasyCreditStatusHandler;
53
use SprykerEco\Zed\Computop\Business\Payment\Handler\PrePlace\PrePlaceHandlerInterface;
54
use SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\AuthorizeSaver;
55
use SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\CaptureSaver;
56
use SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Complete\PayPalExpressCompleteResponseSaver;
57
use SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Complete\PayPalExpressCompleteResponseSaverInterface;
58
use SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\CreditCardResponseSaver;
59
use SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\DirectDebitResponseSaver;
60
use SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\EasyCreditResponseSaver;
61
use SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\IdealResponseSaver;
62
use SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\InitResponseSaverInterface;
63
use SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\PaydirektResponseSaver;
64
use SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\PayNowResponseSaver;
65
use SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\PayPalExpressResponseSaver;
66
use SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\PayPalResponseSaver;
67
use SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\SofortResponseSaver;
68
use SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\InquireSaver;
69
use SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\RefundSaver;
70
use SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\ReverseSaver;
71
use SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\SaverInterface;
72
use SprykerEco\Zed\Computop\Business\Payment\PaymentMethodFilter;
73
use SprykerEco\Zed\Computop\Business\Payment\PaymentMethodFilterInterface;
74
use SprykerEco\Zed\Computop\Business\Payment\Reader\ComputopPaymentReader;
75
use SprykerEco\Zed\Computop\Business\Payment\Reader\ComputopPaymentReaderInterface;
76
use SprykerEco\Zed\Computop\Business\Processor\NotificationProcessor;
77
use SprykerEco\Zed\Computop\Business\Processor\NotificationProcessorInterface;
78
use SprykerEco\Zed\Computop\Business\RiskCheck\Handler\CrifHandler;
79
use SprykerEco\Zed\Computop\Business\RiskCheck\Handler\HandlerInterface;
80
use SprykerEco\Zed\Computop\Business\RiskCheck\Saver\CrifSaver;
81
use SprykerEco\Zed\Computop\Business\RiskCheck\Saver\RiskCheckSaverInterface;
82
use SprykerEco\Zed\Computop\ComputopDependencyProvider;
83
use SprykerEco\Zed\Computop\Dependency\ComputopToStoreInterface;
84
use SprykerEco\Zed\Computop\Dependency\Facade\ComputopToComputopApiFacadeInterface;
85
use SprykerEco\Zed\Computop\Dependency\Facade\ComputopToMessengerFacadeInterface;
86
use SprykerEco\Zed\Computop\Dependency\Facade\ComputopToMoneyFacadeInterface;
87
use SprykerEco\Zed\Computop\Dependency\Facade\ComputopToOmsFacadeInterface;
88
use SprykerEco\Zed\Computop\Dependency\Facade\ComputopToShipmentFacadeInterface;
89
90
/**
91
 * @method \SprykerEco\Zed\Computop\ComputopConfig getConfig()
92
 * @method \SprykerEco\Zed\Computop\Persistence\ComputopQueryContainerInterface getQueryContainer()
93
 * @method \SprykerEco\Zed\Computop\Persistence\ComputopEntityManagerInterface getEntityManager()
94
 * @method \SprykerEco\Zed\Computop\Persistence\ComputopRepositoryInterface getRepository()
95
 */
96
class ComputopBusinessFactory extends AbstractBusinessFactory
97
{
98
    /**
99
     * @return \SprykerEco\Zed\Computop\Business\Order\OrderManagerInterface
100
     */
101
    public function createOrderSaver(): OrderManagerInterface
102
    {
103
        $orderSaver = new OrderManager($this->getConfig());
104
105
        $orderSaver->registerMapper($this->createOrderFactory()->createInitCreditCardMapper());
106
        $orderSaver->registerMapper($this->createOrderFactory()->createInitPayNowMapper());
107
        $orderSaver->registerMapper($this->createOrderFactory()->createInitPayPalMapper());
108
        $orderSaver->registerMapper($this->createOrderFactory()->createPayPalExpressMapper());
109
        $orderSaver->registerMapper($this->createOrderFactory()->createInitDirectDebitMapper());
110
        $orderSaver->registerMapper($this->createOrderFactory()->createInitSofortMapper());
111
        $orderSaver->registerMapper($this->createOrderFactory()->createInitPaydirektMapper());
112
        $orderSaver->registerMapper($this->createOrderFactory()->createInitIdealMapper());
113
        $orderSaver->registerMapper($this->createOrderFactory()->createInitEasyCreditMapper());
114
115
        return $orderSaver;
116
    }
117
118
    /**
119
     * @return \SprykerEco\Zed\Computop\Business\Hook\ComputopPostSaveHookInterface
120
     */
121
    public function createPostSaveHook(): ComputopPostSaveHookInterface
122
    {
123
        $postSaveHook = new ComputopPostSaveHook($this->getConfig());
124
        $postSaveHook->registerMapper($this->createPostSaveSofortMapper());
125
        $postSaveHook->registerMapper($this->createPostSavePaydirektMapper());
126
        $postSaveHook->registerMapper($this->createPostSaveIdealMapper());
127
        $postSaveHook->registerMapper($this->createPostSaveCreditCart());
128
        $postSaveHook->registerMapper($this->createPostSavePayNowMapper());
129
        $postSaveHook->registerMapper($this->createPostSavePayPal());
130
        $postSaveHook->registerMapper($this->createPostSavePayPalExpressMapper());
131
        $postSaveHook->registerMapper($this->createPostSaveDirectDebit());
132
        $postSaveHook->registerMapper($this->createPostSaveEasyCredit());
133
134
        return $postSaveHook;
135
    }
136
137
    /**
138
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\InitResponseSaverInterface
139
     */
140
    public function createSofortResponseSaver(): InitResponseSaverInterface
141
    {
142
        return new SofortResponseSaver($this->getQueryContainer(), $this->getOmsFacade(), $this->getConfig());
143
    }
144
145
    /**
146
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\InitResponseSaverInterface
147
     */
148
    public function createIdealResponseSaver(): InitResponseSaverInterface
149
    {
150
        return new IdealResponseSaver($this->getQueryContainer(), $this->getOmsFacade(), $this->getConfig());
151
    }
152
153
    /**
154
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\InitResponseSaverInterface
155
     */
156
    public function createPaydirektResponseSaver(): InitResponseSaverInterface
157
    {
158
        return new PaydirektResponseSaver($this->getQueryContainer(), $this->getOmsFacade(), $this->getConfig());
159
    }
160
161
    /**
162
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\InitResponseSaverInterface
163
     */
164
    public function createCreditCardResponseSaver(): InitResponseSaverInterface
165
    {
166
        return new CreditCardResponseSaver($this->getQueryContainer(), $this->getOmsFacade(), $this->getConfig());
167
    }
168
169
    /**
170
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\InitResponseSaverInterface
171
     */
172
    public function createPayNowResponseSaver(): InitResponseSaverInterface
173
    {
174
        return new PayNowResponseSaver($this->getQueryContainer(), $this->getOmsFacade(), $this->getConfig());
175
    }
176
177
    /**
178
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\InitResponseSaverInterface
179
     */
180
    public function createPayPalResponseSaver(): InitResponseSaverInterface
181
    {
182
        return new PayPalResponseSaver($this->getQueryContainer(), $this->getOmsFacade(), $this->getConfig());
183
    }
184
185
    /**
186
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\InitResponseSaverInterface
187
     */
188
    public function createPayPalExpressResponseSaver(): InitResponseSaverInterface
189
    {
190
        return new PayPalExpressResponseSaver(
191
            $this->getConfig(),
192
            $this->getRepository(),
193
            $this->getEntityManager()
194
        );
195
    }
196
197
    /**
198
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Complete\PayPalExpressCompleteResponseSaverInterface
199
     */
200
    public function createPayPalExpressCompleteResponseSaver(): PayPalExpressCompleteResponseSaverInterface
201
    {
202
        return new PayPalExpressCompleteResponseSaver(
203
            $this->getConfig(),
204
            $this->getEntityManager(),
205
            $this->getRepository()
206
        );
207
    }
208
209
    /**
210
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\InitResponseSaverInterface
211
     */
212
    public function createDirectDebitResponseSaver(): InitResponseSaverInterface
213
    {
214
        return new DirectDebitResponseSaver($this->getQueryContainer(), $this->getOmsFacade(), $this->getConfig());
215
    }
216
217
    /**
218
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\Init\InitResponseSaverInterface
219
     */
220
    public function createEasyCreditResponseSaver(): InitResponseSaverInterface
221
    {
222
        return new EasyCreditResponseSaver($this->getQueryContainer(), $this->getOmsFacade(), $this->getConfig());
223
    }
224
225
    /**
226
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\Logger\ComputopResponseLoggerInterface
227
     */
228
    public function createComputopResponseLogger(): ComputopResponseLoggerInterface
229
    {
230
        return new ComputopResponseLogger();
231
    }
232
233
    /**
234
     * @return \SprykerEco\Zed\Computop\Dependency\ComputopToStoreInterface
235
     */
236
    public function getStore(): ComputopToStoreInterface
237
    {
238
        return $this->getProvidedDependency(ComputopDependencyProvider::STORE);
239
    }
240
241
    /**
242
     * @return \SprykerEco\Zed\Computop\Business\Oms\Command\CommandHandlerInterface
243
     */
244
    public function createAuthorizeCommandHandler(): CommandHandlerInterface
245
    {
246
        return new AuthorizeCommandHandler(
247
            $this->createAuthorizeHandler(),
248
            $this->createAuthorizeManager()
249
        );
250
    }
251
252
    /**
253
     * @return \SprykerEco\Zed\Computop\Business\Oms\Command\CommandHandlerInterface
254
     */
255
    public function createCancelCommandHandler(): CommandHandlerInterface
256
    {
257
        return new CancelCommandHandler(
258
            $this->createInquireHandler(),
259
            $this->createReverseHandler(),
260
            $this->createCancelManager(),
261
            $this->getFlashMessengerFacade()
262
        );
263
    }
264
265
    /**
266
     * @return \SprykerEco\Zed\Computop\Business\Oms\Command\CommandHandlerInterface
267
     */
268
    public function createCaptureCommandHandler(): CommandHandlerInterface
269
    {
270
        return new CaptureCommandHandler(
271
            $this->createCaptureHandler(),
272
            $this->createCaptureManager()
273
        );
274
    }
275
276
    /**
277
     * @return \SprykerEco\Zed\Computop\Business\Oms\Command\CommandHandlerInterface
278
     */
279
    public function createRefundCommandHandler(): CommandHandlerInterface
280
    {
281
        return new RefundCommandHandler(
282
            $this->createRefundHandler(),
283
            $this->createRefundManager()
284
        );
285
    }
286
287
    /**
288
     * @return \SprykerEco\Zed\Computop\Business\Oms\Command\CommandHandlerInterface
289
     */
290
    public function createEasyCreditAuthorizeCommandHandler(): CommandHandlerInterface
291
    {
292
        return new AuthorizeCommandHandler(
293
            $this->createEasyCreditAuthorizeHandler(),
294
            $this->createAuthorizeManager()
295
        );
296
    }
297
298
    /**
299
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\PrePlace\PrePlaceHandlerInterface
300
     */
301
    public function createEasyCreditStatusHandler(): PrePlaceHandlerInterface
302
    {
303
        return new EasyCreditStatusHandler(
304
            $this->getComputopApiFacade(),
305
            $this->getMoneyFacade(),
306
            $this->createComputopResponseLogger()
307
        );
308
    }
309
310
    /**
311
     * @return \SprykerEco\Zed\Computop\Business\RiskCheck\Handler\HandlerInterface
312
     */
313
    public function createCrifHandler(): HandlerInterface
314
    {
315
        return new CrifHandler(
316
            $this->getComputopApiFacade(),
317
            $this->createCrifSaver(),
318
            $this->getConfig()
319
        );
320
    }
321
322
    /**
323
     * @return \SprykerEco\Zed\Computop\Business\Logger\LoggerInterface
324
     */
325
    public function createComputopLogger(): LoggerInterface
326
    {
327
        return new ComputopLogger();
328
    }
329
330
    /**
331
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\PostPlace\HandlerInterface
332
     */
333
    public function createEasyCreditAuthorizeHandler(): PostPlaceHandlerInterface
334
    {
335
        return new EasyCreditAuthorizeHandler(
336
            $this->getComputopApiFacade(),
337
            $this->createAuthorizeSaver()
338
        );
339
    }
340
341
    /**
342
     * @return \SprykerEco\Zed\Computop\Business\Payment\Reader\ComputopPaymentReaderInterface
343
     */
344
    public function createPaymentReader(): ComputopPaymentReaderInterface
345
    {
346
        return new ComputopPaymentReader($this->getQueryContainer());
347
    }
348
349
    /**
350
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\PostPlace\HandlerInterface
351
     */
352
    public function createAuthorizeHandler(): PostPlaceHandlerInterface
353
    {
354
        return new AuthorizeHandler(
355
            $this->getComputopApiFacade(),
356
            $this->createAuthorizeSaver()
357
        );
358
    }
359
360
    /**
361
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\PostPlace\HandlerInterface
362
     */
363
    public function createReverseHandler(): PostPlaceHandlerInterface
364
    {
365
        return new ReverseHandler(
366
            $this->getComputopApiFacade(),
367
            $this->createReverseSaver()
368
        );
369
    }
370
371
    /**
372
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\PostPlace\HandlerInterface
373
     */
374
    public function createInquireHandler(): PostPlaceHandlerInterface
375
    {
376
        return new InquireHandler(
377
            $this->getComputopApiFacade(),
378
            $this->createInquireSaver()
379
        );
380
    }
381
382
    /**
383
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\PostPlace\HandlerInterface
384
     */
385
    public function createCaptureHandler(): PostPlaceHandlerInterface
386
    {
387
        return new CaptureHandler(
388
            $this->getComputopApiFacade(),
389
            $this->createCaptureSaver()
390
        );
391
    }
392
393
    /**
394
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\PostPlace\HandlerInterface
395
     */
396
    public function createRefundHandler(): PostPlaceHandlerInterface
397
    {
398
        return new RefundHandler(
399
            $this->getComputopApiFacade(),
400
            $this->createRefundSaver()
401
        );
402
    }
403
404
    /**
405
     * @return \SprykerEco\Zed\Computop\Business\RiskCheck\Saver\RiskCheckSaverInterface
406
     */
407
    public function createCrifSaver(): RiskCheckSaverInterface
408
    {
409
        return new CrifSaver(
410
            $this->getQueryContainer(),
411
            $this->createComputopLogger(),
412
            $this->getConfig()
413
        );
414
    }
415
416
    /**
417
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\SaverInterface
418
     */
419
    public function createAuthorizeSaver(): SaverInterface
420
    {
421
        return new AuthorizeSaver(
422
            $this->getQueryContainer(),
423
            $this->createComputopResponseLogger(),
424
            $this->getConfig()
425
        );
426
    }
427
428
    /**
429
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\SaverInterface
430
     */
431
    public function createReverseSaver(): SaverInterface
432
    {
433
        return new ReverseSaver(
434
            $this->getQueryContainer(),
435
            $this->createComputopResponseLogger(),
436
            $this->getConfig()
437
        );
438
    }
439
440
    /**
441
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\SaverInterface
442
     */
443
    public function createInquireSaver(): SaverInterface
444
    {
445
        return new InquireSaver(
446
            $this->getQueryContainer(),
447
            $this->createComputopResponseLogger(),
448
            $this->getConfig()
449
        );
450
    }
451
452
    /**
453
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\SaverInterface
454
     */
455
    public function createCaptureSaver(): SaverInterface
456
    {
457
        return new CaptureSaver(
458
            $this->getQueryContainer(),
459
            $this->createComputopResponseLogger(),
460
            $this->getConfig()
461
        );
462
    }
463
464
    /**
465
     * @return \SprykerEco\Zed\Computop\Business\Payment\Handler\Saver\SaverInterface
466
     */
467
    public function createRefundSaver(): SaverInterface
468
    {
469
        return new RefundSaver(
470
            $this->getQueryContainer(),
471
            $this->createComputopResponseLogger(),
472
            $this->getConfig()
473
        );
474
    }
475
476
    /**
477
     * @return \SprykerEco\Zed\Computop\Business\Oms\Command\Manager\ManagerInterface
478
     */
479
    public function createAuthorizeManager(): ManagerInterface
480
    {
481
        return new AuthorizeManager($this->getQueryContainer(), $this->getConfig());
482
    }
483
484
    /**
485
     * @return \SprykerEco\Zed\Computop\Business\Oms\Command\Manager\CancelManagerInterface
486
     */
487
    public function createCancelManager(): CancelManagerInterface
488
    {
489
        return new CancelManager($this->getQueryContainer(), $this->getConfig());
490
    }
491
492
    /**
493
     * @return \SprykerEco\Zed\Computop\Business\Oms\Command\Manager\ManagerInterface
494
     */
495
    public function createCaptureManager(): ManagerInterface
496
    {
497
        return new CaptureManager($this->getQueryContainer(), $this->getConfig());
498
    }
499
500
    /**
501
     * @return \SprykerEco\Zed\Computop\Business\Oms\Command\Manager\ManagerInterface
502
     */
503
    public function createRefundManager(): ManagerInterface
504
    {
505
        return new RefundManager($this->getQueryContainer(), $this->getConfig());
506
    }
507
508
    /**
509
     * @return \SprykerEco\Zed\Computop\Business\Order\ComputopBusinessOrderFactoryInterface
510
     */
511
    public function createOrderFactory(): ComputopBusinessOrderFactoryInterface
512
    {
513
        return new ComputopBusinessOrderFactory();
514
    }
515
516
    /**
517
     * @return \SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitMapperInterface
518
     */
519
    public function createPostSaveSofortMapper(): InitMapperInterface
520
    {
521
        return new InitSofortMapper($this->getConfig(), $this->getComputopApiService());
522
    }
523
524
    /**
525
     * @return \SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitMapperInterface
526
     */
527
    public function createPostSaveCreditCart(): InitMapperInterface
528
    {
529
        return new InitCreditCardMapper($this->getConfig(), $this->getComputopApiService());
530
    }
531
532
    /**
533
     * @return \SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitMapperInterface
534
     */
535
    public function createPostSavePayNowMapper(): InitMapperInterface
536
    {
537
        return new InitPayNowMapper($this->getConfig(), $this->getComputopApiService());
538
    }
539
540
    /**
541
     * @return \SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitMapperInterface
542
     */
543
    public function createPostSavePayPal(): InitMapperInterface
544
    {
545
        return new InitPayPalMapper($this->getConfig(), $this->getComputopApiService());
546
    }
547
548
    /**
549
     * @return \SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitMapperInterface
550
     */
551
    public function createPostSavePayPalExpressMapper(): InitMapperInterface
552
    {
553
        return new InitPayPalExpressMapper($this->getConfig(), $this->getComputopApiService());
554
    }
555
556
    /**
557
     * @return \SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitMapperInterface
558
     */
559
    public function createPostSaveDirectDebit(): InitMapperInterface
560
    {
561
        return new InitDirectDebitMapper($this->getConfig(), $this->getComputopApiService());
562
    }
563
564
    /**
565
     * @return \SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitMapperInterface
566
     */
567
    public function createPostSaveEasyCredit(): InitMapperInterface
568
    {
569
        return new InitEasyCreditMapper($this->getConfig(), $this->getComputopApiService());
570
    }
571
572
    /**
573
     * @return \SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitMapperInterface
574
     */
575
    public function createPostSavePaydirektMapper(): InitMapperInterface
576
    {
577
        return new InitPaydirektMapper($this->getConfig(), $this->getComputopApiService());
578
    }
579
580
    /**
581
     * @return \SprykerEco\Zed\Computop\Business\Hook\Mapper\Init\InitMapperInterface
582
     */
583
    public function createPostSaveIdealMapper(): InitMapperInterface
584
    {
585
        return new InitIdealMapper($this->getConfig(), $this->getComputopApiService());
586
    }
587
588
    /**
589
     * @return \SprykerEco\Zed\Computop\Business\Payment\PaymentMethodFilterInterface
590
     */
591
    public function createPaymentMethodFilter(): PaymentMethodFilterInterface
592
    {
593
        return new PaymentMethodFilter($this->getConfig());
594
    }
595
596
    /**
597
     * @return \SprykerEco\Zed\Computop\Business\Processor\NotificationProcessorInterface
598
     */
599
    public function createNotificationProcessor(): NotificationProcessorInterface
600
    {
601
        return new NotificationProcessor($this->getEntityManager());
602
    }
603
604
    /**
605
     * @return \SprykerEco\Service\ComputopApi\ComputopApiServiceInterface
606
     */
607
    public function getComputopApiService(): ComputopApiServiceInterface
608
    {
609
        return $this->getProvidedDependency(ComputopDependencyProvider::SERVICE_COMPUTOP_API);
610
    }
611
612
    /**
613
     * @return \SprykerEco\Zed\Computop\Dependency\Facade\ComputopToOmsFacadeInterface
614
     */
615
    public function getOmsFacade(): ComputopToOmsFacadeInterface
616
    {
617
        return $this->getProvidedDependency(ComputopDependencyProvider::FACADE_OMS);
618
    }
619
620
    /**
621
     * @return \SprykerEco\Zed\Computop\Dependency\Facade\ComputopToMessengerFacadeInterface
622
     */
623
    public function getFlashMessengerFacade(): ComputopToMessengerFacadeInterface
624
    {
625
        return $this->getProvidedDependency(ComputopDependencyProvider::FACADE_FLASH_MESSENGER);
626
    }
627
628
    /**
629
     * @return \SprykerEco\Zed\Computop\Dependency\Facade\ComputopToMoneyFacadeInterface
630
     */
631
    public function getMoneyFacade(): ComputopToMoneyFacadeInterface
632
    {
633
        return $this->getProvidedDependency(ComputopDependencyProvider::FACADE_MONEY);
634
    }
635
636
    /**
637
     * @return \SprykerEco\Zed\Computop\Dependency\Facade\ComputopToComputopApiFacadeInterface
638
     */
639
    public function getComputopApiFacade(): ComputopToComputopApiFacadeInterface
640
    {
641
        return $this->getProvidedDependency(ComputopDependencyProvider::FACADE_COMPUTOP_API);
642
    }
643
644
    /**
645
     * @return \SprykerEco\Zed\Computop\Business\DefaultShippingMethodQuoteExpander\QuoteDefaultShippingMethodExpanderInterface
646
     */
647
    public function createQuoteDefaultShippingMethodExpander(): QuoteDefaultShippingMethodExpanderInterface
648
    {
649
        return new QuoteDefaultShippingMethodExpander(
650
            $this->getConfig(),
651
            $this->getShipmentFacade()
652
        );
653
    }
654
655
    /**
656
     * @return ComputopToShipmentFacadeInterface
657
     */
658
    public function getShipmentFacade(): ComputopToShipmentFacadeInterface
659
    {
660
        return $this->getProvidedDependency(ComputopDependencyProvider::FACADE_SHIPMENT);
661
    }
662
}
663