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

ComputopBusinessFactory   C

Complexity

Total Complexity 56

Size/Duplication

Total Lines 546
Duplicated Lines 0 %

Importance

Changes 6
Bugs 0 Features 0
Metric Value
wmc 56
eloc 131
c 6
b 0
f 0
dl 0
loc 546
rs 5.5199

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