Passed
Push — feature/eco-3135/eco-3149-dire... ( e79f9f...f6c32e )
by Volodymyr
05:30
created

createDirectDebitNewRegistrationIframeOption()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 5
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\Heidelpay\Business;
9
10
use Spryker\Zed\Kernel\Business\AbstractBusinessFactory;
11
use SprykerEco\Shared\Heidelpay\HeidelpayConfig;
12
use SprykerEco\Zed\Heidelpay\Business\Adapter\AdapterFactory;
13
use SprykerEco\Zed\Heidelpay\Business\Adapter\AdapterFactoryInterface;
14
use SprykerEco\Zed\Heidelpay\Business\Adapter\Payment\CreditCardPaymentInterface;
15
use SprykerEco\Zed\Heidelpay\Business\Adapter\Payment\DirectDebitPaymentInterface;
16
use SprykerEco\Zed\Heidelpay\Business\Basket\BasketCreator;
17
use SprykerEco\Zed\Heidelpay\Business\Basket\BasketCreatorInterface;
18
use SprykerEco\Zed\Heidelpay\Business\Encrypter\AesEncrypter;
19
use SprykerEco\Zed\Heidelpay\Business\Encrypter\EncrypterInterface;
20
use SprykerEco\Zed\Heidelpay\Business\Hook\PostSaveHook;
21
use SprykerEco\Zed\Heidelpay\Business\Hook\PostSaveHookInterface;
22
use SprykerEco\Zed\Heidelpay\Business\Mapper\OrderToHeidelpayRequest;
23
use SprykerEco\Zed\Heidelpay\Business\Mapper\OrderToHeidelpayRequestInterface;
24
use SprykerEco\Zed\Heidelpay\Business\Mapper\QuoteToHeidelpayRequest;
25
use SprykerEco\Zed\Heidelpay\Business\Mapper\QuoteToHeidelpayRequestInterface;
26
use SprykerEco\Zed\Heidelpay\Business\Order\OrderReader;
27
use SprykerEco\Zed\Heidelpay\Business\Order\OrderReaderInterface;
28
use SprykerEco\Zed\Heidelpay\Business\Order\Saver;
29
use SprykerEco\Zed\Heidelpay\Business\Order\SaverInterface;
30
use SprykerEco\Zed\Heidelpay\Business\Payment\CreditCard\PaymentOption\LastSuccessfulRegistration;
31
use SprykerEco\Zed\Heidelpay\Business\Payment\CreditCard\PaymentOption\NewRegistrationIframe;
32
use SprykerEco\Zed\Heidelpay\Business\Payment\CreditCard\PaymentOption\PaymentOptionInterface;
33
use SprykerEco\Zed\Heidelpay\Business\Payment\CreditCard\PaymentOptionsCalculator;
34
use SprykerEco\Zed\Heidelpay\Business\Payment\CreditCard\PaymentOptionsCalculatorInterface;
35
use SprykerEco\Zed\Heidelpay\Business\Payment\CreditCard\Registration\RegistrationReader;
36
use SprykerEco\Zed\Heidelpay\Business\Payment\CreditCard\Registration\RegistrationReaderInterface;
37
use SprykerEco\Zed\Heidelpay\Business\Payment\CreditCard\Registration\RegistrationSaver;
38
use SprykerEco\Zed\Heidelpay\Business\Payment\CreditCard\Registration\RegistrationSaverInterface;
39
use SprykerEco\Zed\Heidelpay\Business\Payment\CreditCard\Registration\RegistrationWriter;
40
use SprykerEco\Zed\Heidelpay\Business\Payment\CreditCard\Registration\RegistrationWriterInterface;
41
use SprykerEco\Zed\Heidelpay\Business\Payment\CreditCardSecure;
42
use SprykerEco\Zed\Heidelpay\Business\Payment\DirectDebit;
43
use SprykerEco\Zed\Heidelpay\Business\Payment\DirectDebit\DirectDebitPaymentOptionsCalculator;
44
use SprykerEco\Zed\Heidelpay\Business\Payment\DirectDebit\DirectDebitPaymentOptionsCalculatorInterface;
45
use SprykerEco\Zed\Heidelpay\Business\Payment\DirectDebit\PaymentOption\DirectDebitLastSuccessfulRegistration;
46
use SprykerEco\Zed\Heidelpay\Business\Payment\DirectDebit\PaymentOption\DirectDebitNewRegistration;
47
use SprykerEco\Zed\Heidelpay\Business\Payment\DirectDebit\PaymentOption\DirectDebitPaymentOptionInterface;
48
use SprykerEco\Zed\Heidelpay\Business\Payment\DirectDebit\Registration\DirectDebitRegistrationReader;
49
use SprykerEco\Zed\Heidelpay\Business\Payment\DirectDebit\Registration\DirectDebitRegistrationReaderInterface;
50
use SprykerEco\Zed\Heidelpay\Business\Payment\DirectDebit\Registration\DirectDebitRegistrationWriter;
51
use SprykerEco\Zed\Heidelpay\Business\Payment\DirectDebit\Registration\DirectDebitRegistrationWriterInterface;
52
use SprykerEco\Zed\Heidelpay\Business\Payment\EasyCredit;
53
use SprykerEco\Zed\Heidelpay\Business\Payment\Ideal;
54
use SprykerEco\Zed\Heidelpay\Business\Payment\PaymentMethodFilter;
55
use SprykerEco\Zed\Heidelpay\Business\Payment\PaymentMethodFilterInterface;
56
use SprykerEco\Zed\Heidelpay\Business\Payment\PaymentReader;
57
use SprykerEco\Zed\Heidelpay\Business\Payment\PaymentReaderInterface;
58
use SprykerEco\Zed\Heidelpay\Business\Payment\PaymentWriter;
59
use SprykerEco\Zed\Heidelpay\Business\Payment\PaymentWriterInterface;
60
use SprykerEco\Zed\Heidelpay\Business\Payment\PaypalAuthorize;
61
use SprykerEco\Zed\Heidelpay\Business\Payment\PaypalDebit;
62
use SprykerEco\Zed\Heidelpay\Business\Payment\Request\AdapterRequestFromOrderBuilder;
63
use SprykerEco\Zed\Heidelpay\Business\Payment\Request\AdapterRequestFromOrderBuilderInterface;
64
use SprykerEco\Zed\Heidelpay\Business\Payment\Request\AdapterRequestFromQuoteBuilder;
65
use SprykerEco\Zed\Heidelpay\Business\Payment\Request\AdapterRequestFromQuoteBuilderInterface;
66
use SprykerEco\Zed\Heidelpay\Business\Payment\Request\EasyCreditAdapterRequestFromOrderBuilder;
67
use SprykerEco\Zed\Heidelpay\Business\Payment\Request\EasyCreditAdapterRequestFromQuoteBuilder;
68
use SprykerEco\Zed\Heidelpay\Business\Payment\Request\ExternalEasyCreditPaymentResponseBuilder;
69
use SprykerEco\Zed\Heidelpay\Business\Payment\Request\ExternalEasyCreditPaymentResponseBuilderInterface;
70
use SprykerEco\Zed\Heidelpay\Business\Payment\Request\ExternalPaymentResponseBuilder;
71
use SprykerEco\Zed\Heidelpay\Business\Payment\Request\ExternalPaymentResponseBuilderInterface;
72
use SprykerEco\Zed\Heidelpay\Business\Payment\Sofort;
73
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\AuthorizeOnRegistrationTransaction;
74
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\AuthorizeOnRegistrationTransactionInterface;
75
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\AuthorizeTransaction;
76
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\AuthorizeTransactionInterface;
77
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\CaptureTransaction;
78
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\CaptureTransactionInterface;
79
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\DebitTransaction;
80
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\DebitTransactionInterface;
81
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\EasyCreditInitializeExternalResponseTransaction;
82
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\ExternalResponseTransaction;
83
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\ExternalResponseTransactionInterface;
84
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\FinalizeTransaction;
85
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\FinalizeTransactionInterface;
86
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\AuthorizeOnRegistrationTransactionHandler;
87
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\AuthorizeOnRegistrationTransactionHandlerInterface;
88
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\AuthorizeTransactionHandler;
89
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\AuthorizeTransactionHandlerInterface;
90
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\CaptureTransactionHandler;
91
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\CaptureTransactionHandlerInterface;
92
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\DebitTransactionHandler;
93
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\DebitTransactionHandlerInterface;
94
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\ExternalEasyCreditResponseTransactionHandler;
95
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\ExternalEasyCreditResponseTransactionHandlerInterface;
96
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\ExternalResponseTransactionHandler;
97
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\ExternalResponseTransactionHandlerInterface;
98
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\FinalizeTransactionHandler;
99
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\FinalizeTransactionHandlerInterface;
100
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\InitializeTransactionHandler;
101
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\InitializeTransactionHandlerInterface;
102
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\ReservationTransactionHandler;
103
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\ReservationTransactionHandlerInterface;
104
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\InitializeTransaction;
105
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\InitializeTransactionInterface;
106
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Logger\TransactionLogger;
107
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Logger\TransactionLoggerInterface;
108
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\ReservationTransaction;
109
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\ReservationTransactionInterface;
110
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\TransactionLogReader;
111
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\TransactionLogReaderInterface;
112
use SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithPostSaveOrderInterface;
113
use SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithPreSavePaymentInterface;
114
use SprykerEco\Zed\Heidelpay\Dependency\Facade\HeidelpayToCurrencyFacadeInterface;
115
use SprykerEco\Zed\Heidelpay\Dependency\Facade\HeidelpayToMoneyFacadeInterface;
116
use SprykerEco\Zed\Heidelpay\Dependency\Facade\HeidelpayToSalesFacadeInterface;
117
use SprykerEco\Zed\Heidelpay\Dependency\QueryContainer\HeidelpayToSalesQueryContainerInterface;
118
use SprykerEco\Zed\Heidelpay\Dependency\Service\HeidelpayToUtilEncodingServiceInterface;
119
use SprykerEco\Zed\Heidelpay\HeidelpayDependencyProvider;
120
121
/**
122
 * @method \SprykerEco\Zed\Heidelpay\Persistence\HeidelpayQueryContainerInterface getQueryContainer()
123
 * @method \SprykerEco\Zed\Heidelpay\HeidelpayConfig getConfig()
124
 * @method \SprykerEco\Zed\Heidelpay\Persistence\HeidelpayRepositoryInterface getRepository()
125
 * @method \SprykerEco\Zed\Heidelpay\Persistence\HeidelpayEntityManagerInterface getEntityManager()
126
 */
127
class HeidelpayBusinessFactory extends AbstractBusinessFactory
128
{
129
    /**
130
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\AuthorizeTransactionHandlerInterface
131
     */
132
    public function createAuthorizeTransactionHandler(): AuthorizeTransactionHandlerInterface
133
    {
134
        return new AuthorizeTransactionHandler(
135
            $this->createAuthorizeTransaction(),
136
            $this->getAuthorizePaymentMethodAdapterCollection(),
137
            $this->createAdapterRequestFromOrderBuilder()
138
        );
139
    }
140
141
    /**
142
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\AuthorizeOnRegistrationTransactionHandlerInterface
143
     */
144
    public function createAuthorizeOnRegistrationTransactionHandler(): AuthorizeOnRegistrationTransactionHandlerInterface
145
    {
146
        return new AuthorizeOnRegistrationTransactionHandler(
147
            $this->createAuthorizeOnRegistrationTransaction(),
148
            $this->getAuthorizeOnRegistrationPaymentMethodAdapterCollection(),
149
            $this->createAdapterRequestFromOrderBuilder()
150
        );
151
    }
152
153
    /**
154
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\InitializeTransactionHandlerInterface
155
     */
156
    public function createInitializeTransactionHandler(): InitializeTransactionHandlerInterface
157
    {
158
        return new InitializeTransactionHandler(
159
            $this->createInitializeTransaction(),
160
            $this->getInitializePaymentMethodAdapterCollection(),
161
            $this->createEasyCreditAdapterRequestFromQuoteBuilder(),
162
            $this->createBasketHanlder()
163
        );
164
    }
165
166
    /**
167
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\DebitTransactionHandlerInterface
168
     */
169
    public function createDebitTransactionHandler(): DebitTransactionHandlerInterface
170
    {
171
        return new DebitTransactionHandler(
172
            $this->createDebitTransaction(),
173
            $this->getDebitPaymentMethodAdapterCollection(),
174
            $this->createAdapterRequestFromOrderBuilder()
175
        );
176
    }
177
178
    /**
179
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\FinalizeTransactionHandlerInterface
180
     */
181
    public function createFinalizeTransactionHandler(): FinalizeTransactionHandlerInterface
182
    {
183
        return new FinalizeTransactionHandler(
184
            $this->createFinalizeTransaction(),
185
            $this->getFinalizePaymentMethodAdapterCollection(),
186
            $this->createEasyCreditAdapterRequestFromOrderBuilder(),
187
            $this->createPaymentWriter()
188
        );
189
    }
190
191
    /**
192
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\ReservationTransactionHandlerInterface
193
     */
194
    public function createReservationTransactionHandler(): ReservationTransactionHandlerInterface
195
    {
196
        return new ReservationTransactionHandler(
197
            $this->createReservationTransaction(),
198
            $this->getReservationPaymentMethodAdapterCollection(),
199
            $this->createAdapterRequestFromOrderBuilder(),
200
            $this->createPaymentWriter()
201
        );
202
    }
203
204
    /**
205
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\CaptureTransactionHandlerInterface
206
     */
207
    public function createCaptureTransactionHandler(): CaptureTransactionHandlerInterface
208
    {
209
        return new CaptureTransactionHandler(
210
            $this->createCaptureTransaction(),
211
            $this->getCapturePaymentMethodAdapterCollection(),
212
            $this->createAdapterRequestFromOrderBuilder()
213
        );
214
    }
215
216
    /**
217
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\ExternalResponseTransactionHandlerInterface
218
     */
219
    public function createExternalResponseTransactionHandler(): ExternalResponseTransactionHandlerInterface
220
    {
221
        return new ExternalResponseTransactionHandler(
222
            $this->createExternalResponseTransaction(),
223
            $this->getExternalResponsePaymentMethodAdapterCollection(),
224
            $this->createExternalPaymentResponseBuilder(),
225
            $this->createPaymentWriter()
226
        );
227
    }
228
229
    /**
230
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Handler\ExternalEasyCreditResponseTransactionHandlerInterface
231
     */
232
    public function createEasyCreditInitializeExternalResponseTransactionHandler(): ExternalEasyCreditResponseTransactionHandlerInterface
233
    {
234
        return new ExternalEasyCreditResponseTransactionHandler(
235
            $this->createEasyCreditInitializeExternalResponseTransaction(),
236
            $this->getExternalResponsePaymentMethodAdapterCollection(),
237
            $this->createExternalEasyCreditPaymentResponseBuilder(),
238
            $this->createPaymentWriter()
239
        );
240
    }
241
242
    /**
243
     * @return \SprykerEco\Zed\Heidelpay\Business\Adapter\AdapterFactoryInterface
244
     */
245
    public function createAdapterFactory(): AdapterFactoryInterface
246
    {
247
        return new AdapterFactory();
248
    }
249
250
    /**
251
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Logger\TransactionLoggerInterface
252
     */
253
    public function createTransactionLogger(): TransactionLoggerInterface
254
    {
255
        return new TransactionLogger(
256
            $this->getUtilEncodingService(),
257
            $this->createAesEncrypter()
258
        );
259
    }
260
261
    /**
262
     * @return \SprykerEco\Zed\Heidelpay\Business\Order\SaverInterface
263
     */
264
    public function createOrderSaver(): SaverInterface
265
    {
266
        return new Saver(
267
            $this->createBasketHanlder(),
268
            $this->getPaymentMethodWithPreSavePaymentCollection()
269
        );
270
    }
271
272
    /**
273
     * @return \SprykerEco\Zed\Heidelpay\Business\Hook\PostSaveHookInterface
274
     */
275
    public function createPostSaveHook(): PostSaveHookInterface
276
    {
277
        return new PostSaveHook($this->getPaymentMethodWithPostSaveOrderCollection());
278
    }
279
280
    /**
281
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\PaymentReaderInterface
282
     */
283
    public function createPaymentReader(): PaymentReaderInterface
284
    {
285
        return new PaymentReader($this->getQueryContainer());
286
    }
287
288
    /**
289
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\PaymentWriterInterface
290
     */
291
    public function createPaymentWriter(): PaymentWriterInterface
292
    {
293
        return new PaymentWriter($this->getQueryContainer());
294
    }
295
296
    /**
297
     * @return \SprykerEco\Zed\Heidelpay\Business\Order\OrderReaderInterface
298
     */
299
    public function createOrderReader(): OrderReaderInterface
300
    {
301
        return new OrderReader($this->getSalesQueryContainer());
302
    }
303
304
    /**
305
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\TransactionLogReaderInterface
306
     */
307
    public function createTransactionLogReader(): TransactionLogReaderInterface
308
    {
309
        return new TransactionLogReader(
310
            $this->getQueryContainer(),
311
            $this->createAdapterFactory()->createTransactionParser(),
312
            $this->createOrderReader(),
313
            $this->createAesEncrypter()
314
        );
315
    }
316
317
    /**
318
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\CreditCard\PaymentOptionsCalculatorInterface
319
     */
320
    public function createPaymentOptionsCalculator(): PaymentOptionsCalculatorInterface
321
    {
322
        return new PaymentOptionsCalculator($this->getCreditCardPaymentOptionsArray());
323
    }
324
325
    /**
326
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\DirectDebit\DirectDebitPaymentOptionsCalculatorInterface
327
     */
328
    public function createDirectDebitPaymentOptionsCalculator(): DirectDebitPaymentOptionsCalculatorInterface
329
    {
330
        return new DirectDebitPaymentOptionsCalculator($this->getDirectDebitPaymentOptionsArray());
331
    }
332
333
    /**
334
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\CreditCard\Registration\RegistrationReaderInterface
335
     */
336
    public function createCreditCardRegistrationReader(): RegistrationReaderInterface
337
    {
338
        return new RegistrationReader($this->getQueryContainer());
339
    }
340
341
    /**
342
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\CreditCard\Registration\RegistrationSaverInterface
343
     */
344
    public function createCreditCardRegistrationSaver(): RegistrationSaverInterface
345
    {
346
        return new RegistrationSaver($this->getQueryContainer());
347
    }
348
349
    /**
350
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\CreditCard\PaymentOption\PaymentOptionInterface[]
351
     */
352
    public function getCreditCardPaymentOptionsArray(): array
353
    {
354
        return [
355
            $this->createLastSuccessfulRegistrationOption(),
356
            $this->createNewRegistrationIframeOption(),
357
        ];
358
    }
359
360
    /**
361
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\CreditCard\PaymentOption\PaymentOptionInterface
362
     */
363
    public function createLastSuccessfulRegistrationOption(): PaymentOptionInterface
364
    {
365
        return new LastSuccessfulRegistration($this->createCreditCardRegistrationReader());
366
    }
367
368
    /**
369
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\CreditCard\PaymentOption\PaymentOptionInterface
370
     */
371
    public function createNewRegistrationIframeOption(): PaymentOptionInterface
372
    {
373
        return new NewRegistrationIframe(
374
            $this->createAdapterRequestFromQuoteBuilder(),
375
            $this->getCreditCardPaymentMethodAdapter()
376
        );
377
    }
378
379
    /**
380
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\DirectDebit\Registration\DirectDebitRegistrationWriterInterface
381
     */
382
    public function createDirectDebitRegistrationWriter(): DirectDebitRegistrationWriterInterface
383
    {
384
        return new DirectDebitRegistrationWriter(
385
            $this->getEntityManager(),
386
            $this->getRepository()
387
        );
388
    }
389
390
    /**
391
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\DirectDebit\Registration\DirectDebitRegistrationReaderInterface
392
     */
393
    public function createDirectDebitRegistrationReader(): DirectDebitRegistrationReaderInterface
394
    {
395
        return new DirectDebitRegistrationReader($this->getRepository());
396
    }
397
398
    /**
399
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\DirectDebit\PaymentOption\DirectDebitPaymentOptionInterface[]
400
     */
401
    public function getDirectDebitPaymentOptionsArray(): array
402
    {
403
        return [
404
            $this->createDirectDebitNewRegistrationOption(),
405
        ];
406
    }
407
408
    /**
409
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\DirectDebit\PaymentOption\DirectDebitPaymentOptionInterface
410
     */
411
    public function createDirectDebitLastSuccessfulRegistrationOption(): DirectDebitPaymentOptionInterface
412
    {
413
        return new DirectDebitLastSuccessfulRegistration($this->createCreditCardRegistrationReader());
414
    }
415
416
    /**
417
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\DirectDebit\PaymentOption\DirectDebitPaymentOptionInterface
418
     */
419
    public function createDirectDebitNewRegistrationOption(): DirectDebitPaymentOptionInterface
420
    {
421
        return new DirectDebitNewRegistration(
422
            $this->createAdapterRequestFromQuoteBuilder(),
423
            $this->getDirectDebitPaymentMethod()
424
        );
425
    }
426
427
    /**
428
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Request\ExternalPaymentResponseBuilderInterface
429
     */
430
    public function createExternalPaymentResponseBuilder(): ExternalPaymentResponseBuilderInterface
431
    {
432
        return new ExternalPaymentResponseBuilder($this->createPaymentReader());
433
    }
434
435
    /**
436
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Request\ExternalEasyCreditPaymentResponseBuilderInterface
437
     */
438
    public function createExternalEasyCreditPaymentResponseBuilder(): ExternalEasyCreditPaymentResponseBuilderInterface
439
    {
440
        return new ExternalEasyCreditPaymentResponseBuilder($this->createPaymentReader());
441
    }
442
443
    /**
444
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithAuthorizeInterface[]
445
     */
446
    public function getAuthorizePaymentMethodAdapterCollection(): array
447
    {
448
        return $this
0 ignored issues
show
Bug Best Practice introduced by
The expression return $this->createAdap...thodAdapterCollection() returns an array which contains values of type SprykerEco\Zed\Heidelpay...yment\EasyCreditPayment which are incompatible with the documented value type SprykerEco\Zed\Heidelpay...tWithAuthorizeInterface.
Loading history...
449
            ->createAdapterFactory()
450
            ->getAuthorizePaymentMethodAdapterCollection();
451
    }
452
453
    /**
454
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithAuthorizeOnRegistrationInterface[]
455
     */
456
    public function getAuthorizeOnRegistrationPaymentMethodAdapterCollection(): array
457
    {
458
        return $this
459
            ->createAdapterFactory()
460
            ->getAuthorizeOnRegistrationPaymentMethodAdapterCollection();
461
    }
462
463
    /**
464
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithCaptureInterface[]
465
     */
466
    public function getCapturePaymentMethodAdapterCollection(): array
467
    {
468
        return $this
0 ignored issues
show
Bug Best Practice introduced by
The expression return $this->createAdap...thodAdapterCollection() returns an array which contains values of type SprykerEco\Zed\Heidelpay...yment\EasyCreditPayment which are incompatible with the documented value type SprykerEco\Zed\Heidelpay...entWithCaptureInterface.
Loading history...
469
            ->createAdapterFactory()
470
            ->getCapturePaymentMethodAdapterCollection();
471
    }
472
473
    /**
474
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithInitializeInterface[]
475
     */
476
    public function getInitializePaymentMethodAdapterCollection(): array
477
    {
478
        return $this
479
            ->createAdapterFactory()
480
            ->getInitializePaymentMethodAdapterCollection();
481
    }
482
483
    /**
484
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithDebitInterface[]
485
     */
486
    public function getDebitPaymentMethodAdapterCollection(): array
487
    {
488
        return $this
489
            ->createAdapterFactory()
490
            ->getDebitPaymentMethodAdapterCollection();
491
    }
492
493
    /**
494
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithFinalizeInterface[]
495
     */
496
    public function getFinalizePaymentMethodAdapterCollection(): array
497
    {
498
        return $this
499
            ->createAdapterFactory()
500
            ->getFinalizePaymentMethodAdapterCollection();
501
    }
502
503
    /**
504
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithReservationInterface[]
505
     */
506
    public function getReservationPaymentMethodAdapterCollection(): array
507
    {
508
        return $this
509
            ->createAdapterFactory()
510
            ->getReservationPaymentMethodAdapterCollection();
511
    }
512
513
    /**
514
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithExternalResponseInterface[]
515
     */
516
    public function getExternalResponsePaymentMethodAdapterCollection(): array
517
    {
518
        return $this
519
            ->createAdapterFactory()
520
            ->getExternalResponsePaymentMethodAdapterCollection();
521
    }
522
523
    /**
524
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Request\AdapterRequestFromOrderBuilderInterface
525
     */
526
    public function createAdapterRequestFromOrderBuilder(): AdapterRequestFromOrderBuilderInterface
527
    {
528
        return new AdapterRequestFromOrderBuilder(
529
            $this->createOrderToHeidelpayRequestMapper(),
530
            $this->getCurrencyFacade(),
531
            $this->getConfig(),
532
            $this->createPaymentReader()
533
        );
534
    }
535
536
    /**
537
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Request\AdapterRequestFromOrderBuilderInterface
538
     */
539
    public function createEasyCreditAdapterRequestFromOrderBuilder(): AdapterRequestFromOrderBuilderInterface
540
    {
541
        return new EasyCreditAdapterRequestFromOrderBuilder(
542
            $this->createOrderToHeidelpayRequestMapper(),
543
            $this->getCurrencyFacade(),
544
            $this->getConfig(),
545
            $this->createPaymentReader()
546
        );
547
    }
548
549
    /**
550
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Request\AdapterRequestFromQuoteBuilderInterface
551
     */
552
    public function createAdapterRequestFromQuoteBuilder(): AdapterRequestFromQuoteBuilderInterface
553
    {
554
        return new AdapterRequestFromQuoteBuilder(
555
            $this->createQuoteToHeidelpayRequestMapper(),
556
            $this->getCurrencyFacade(),
557
            $this->getConfig()
558
        );
559
    }
560
561
    /**
562
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Request\AdapterRequestFromQuoteBuilderInterface
563
     */
564
    public function createEasyCreditAdapterRequestFromQuoteBuilder(): AdapterRequestFromQuoteBuilderInterface
565
    {
566
        return new EasyCreditAdapterRequestFromQuoteBuilder(
567
            $this->createQuoteToHeidelpayRequestMapper(),
568
            $this->getCurrencyFacade(),
569
            $this->getConfig(),
570
            $this->getSalesFacade()
571
        );
572
    }
573
574
    /**
575
     * @return \SprykerEco\Zed\Heidelpay\Business\Mapper\OrderToHeidelpayRequestInterface
576
     */
577
    public function createOrderToHeidelpayRequestMapper(): OrderToHeidelpayRequestInterface
578
    {
579
        return new OrderToHeidelpayRequest($this->getMoneyFacade());
580
    }
581
582
    /**
583
     * @return \SprykerEco\Zed\Heidelpay\Business\Mapper\QuoteToHeidelpayRequestInterface
584
     */
585
    public function createQuoteToHeidelpayRequestMapper(): QuoteToHeidelpayRequestInterface
586
    {
587
        return new QuoteToHeidelpayRequest($this->getMoneyFacade());
588
    }
589
590
    /**
591
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\AuthorizeTransactionInterface
592
     */
593
    public function createAuthorizeTransaction(): AuthorizeTransactionInterface
594
    {
595
        return new AuthorizeTransaction($this->createTransactionLogger());
596
    }
597
598
    /**
599
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\AuthorizeOnRegistrationTransactionInterface
600
     */
601
    public function createAuthorizeOnRegistrationTransaction(): AuthorizeOnRegistrationTransactionInterface
602
    {
603
        return new AuthorizeOnRegistrationTransaction($this->createTransactionLogger());
604
    }
605
606
    /**
607
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\InitializeTransactionInterface
608
     */
609
    public function createInitializeTransaction(): InitializeTransactionInterface
610
    {
611
        return new InitializeTransaction();
612
    }
613
614
    /**
615
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\DebitTransactionInterface
616
     */
617
    public function createDebitTransaction(): DebitTransactionInterface
618
    {
619
        return new DebitTransaction($this->createTransactionLogger());
620
    }
621
622
    /**
623
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\FinalizeTransactionInterface
624
     */
625
    public function createFinalizeTransaction(): FinalizeTransactionInterface
626
    {
627
        return new FinalizeTransaction($this->createTransactionLogger());
628
    }
629
630
    /**
631
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\ReservationTransactionInterface
632
     */
633
    public function createReservationTransaction(): ReservationTransactionInterface
634
    {
635
        return new ReservationTransaction($this->createTransactionLogger());
636
    }
637
638
    /**
639
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\CaptureTransactionInterface
640
     */
641
    public function createCaptureTransaction(): CaptureTransactionInterface
642
    {
643
        return new CaptureTransaction($this->createTransactionLogger());
644
    }
645
646
    /**
647
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithPostSaveOrderInterface[]
648
     */
649
    public function getPaymentMethodWithPostSaveOrderCollection(): array
650
    {
651
        return [
652
            HeidelpayConfig::PAYMENT_METHOD_SOFORT => $this->createPaymentMethodSofort(),
653
            HeidelpayConfig::PAYMENT_METHOD_PAYPAL_AUTHORIZE => $this->createPaymentMethodPaypalAuthorize(),
654
            HeidelpayConfig::PAYMENT_METHOD_PAYPAL_DEBIT => $this->createPaymentMethodPaypalDebit(),
655
            HeidelpayConfig::PAYMENT_METHOD_IDEAL => $this->createPaymentMethodIdeal(),
656
            HeidelpayConfig::PAYMENT_METHOD_CREDIT_CARD_SECURE => $this->createPaymentMethodCreditCardSecure(),
657
        ];
658
    }
659
660
    /**
661
     * @return array
662
     */
663
    public function getPaymentMethodWithPreSavePaymentCollection(): array
664
    {
665
        return [
666
            HeidelpayConfig::PAYMENT_METHOD_CREDIT_CARD_SECURE => $this->createPaymentMethodCreditCardSecure(),
667
            HeidelpayConfig::PAYMENT_METHOD_EASY_CREDIT => $this->createPaymentMethodEasyCredit(),
668
        ];
669
    }
670
671
    /**
672
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithPostSaveOrderInterface
673
     */
674
    public function createPaymentMethodSofort(): PaymentWithPostSaveOrderInterface
675
    {
676
        return new Sofort(
677
            $this->createTransactionLogReader(),
678
            $this->getConfig()
679
        );
680
    }
681
682
    /**
683
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithPostSaveOrderInterface
684
     */
685
    public function createPaymentMethodPaypalAuthorize(): PaymentWithPostSaveOrderInterface
686
    {
687
        return new PaypalAuthorize(
688
            $this->createTransactionLogReader(),
689
            $this->getConfig()
690
        );
691
    }
692
693
    /**
694
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithPostSaveOrderInterface
695
     */
696
    public function createPaymentMethodPaypalDebit(): PaymentWithPostSaveOrderInterface
697
    {
698
        return new PaypalDebit(
699
            $this->createTransactionLogReader(),
700
            $this->getConfig()
701
        );
702
    }
703
704
    /**
705
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithPreSavePaymentInterface
706
     */
707
    public function createPaymentMethodEasyCredit(): PaymentWithPreSavePaymentInterface
708
    {
709
        return new EasyCredit(
710
            $this->createTransactionLogReader(),
711
            $this->getConfig()
712
        );
713
    }
714
715
    /**
716
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithPostSaveOrderInterface
717
     */
718
    public function createPaymentMethodIdeal(): PaymentWithPostSaveOrderInterface
719
    {
720
        return new Ideal(
721
            $this->createTransactionLogReader(),
722
            $this->getConfig()
723
        );
724
    }
725
726
    /**
727
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithPostSaveOrderInterface
728
     */
729
    public function createPaymentMethodCreditCardSecure(): PaymentWithPostSaveOrderInterface
730
    {
731
        return new CreditCardSecure(
732
            $this->createTransactionLogReader(),
733
            $this->getConfig(),
734
            $this->createCreditCardRegistrationWriter()
735
        );
736
    }
737
738
    /**
739
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithPostSaveOrderInterface
740
     */
741
    public function createDirectDebit(): PaymentWithPostSaveOrderInterface
742
    {
743
        return new DirectDebit(
744
            $this->createTransactionLogReader(),
745
            $this->getConfig(),
746
            $this->createCreditCardRegistrationWriter()
747
        );
748
    }
749
750
    /**
751
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\CreditCard\Registration\RegistrationWriterInterface
752
     */
753
    public function createCreditCardRegistrationWriter(): RegistrationWriterInterface
754
    {
755
        return new RegistrationWriter($this->getQueryContainer());
756
    }
757
758
    /**
759
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\ExternalResponseTransactionInterface
760
     */
761
    public function createExternalResponseTransaction(): ExternalResponseTransactionInterface
762
    {
763
        return new ExternalResponseTransaction($this->createTransactionLogger());
764
    }
765
766
    /**
767
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\ExternalResponseTransactionInterface
768
     */
769
    public function createEasyCreditInitializeExternalResponseTransaction(): ExternalResponseTransactionInterface
770
    {
771
        return new EasyCreditInitializeExternalResponseTransaction();
772
    }
773
774
    /**
775
     * @return \SprykerEco\Zed\Heidelpay\Business\Encrypter\EncrypterInterface
776
     */
777
    public function createAesEncrypter(): EncrypterInterface
778
    {
779
        return new AesEncrypter($this->getConfig());
780
    }
781
782
    /**
783
     * @return \SprykerEco\Zed\Heidelpay\Dependency\Facade\HeidelpayToSalesFacadeInterface
784
     */
785
    public function getSalesFacade(): HeidelpayToSalesFacadeInterface
786
    {
787
        return $this->getProvidedDependency(HeidelpayDependencyProvider::FACADE_SALES);
788
    }
789
790
    /**
791
     * @return \SprykerEco\Zed\Heidelpay\Dependency\Facade\HeidelpayToCurrencyFacadeInterface
792
     */
793
    public function getCurrencyFacade(): HeidelpayToCurrencyFacadeInterface
794
    {
795
        return $this->getProvidedDependency(HeidelpayDependencyProvider::FACADE_CURRENCY);
796
    }
797
798
    /**
799
     * @return \SprykerEco\Zed\Heidelpay\Business\Adapter\Payment\CreditCardPaymentInterface
800
     */
801
    public function getCreditCardPaymentMethodAdapter(): CreditCardPaymentInterface
802
    {
803
        return $this
804
            ->createAdapterFactory()
805
            ->createCreditCardPaymentMethodAdapter();
806
    }
807
808
    /**
809
     * @return \SprykerEco\Zed\Heidelpay\Business\Adapter\Payment\DirectDebitPaymentInterface
810
     */
811
    public function getDirectDebitPaymentMethod(): DirectDebitPaymentInterface
812
    {
813
        return $this
814
            ->createAdapterFactory()
815
            ->createDirectDebitPaymentMethod();
816
    }
817
818
    /**
819
     * @return \SprykerEco\Zed\Heidelpay\Dependency\QueryContainer\HeidelpayToSalesQueryContainerInterface
820
     */
821
    public function getSalesQueryContainer(): HeidelpayToSalesQueryContainerInterface
822
    {
823
        return $this->getProvidedDependency(HeidelpayDependencyProvider::QUERY_CONTAINER_SALES);
824
    }
825
826
    /**
827
     * @return \SprykerEco\Zed\Heidelpay\Dependency\Facade\HeidelpayToMoneyFacadeInterface
828
     */
829
    public function getMoneyFacade(): HeidelpayToMoneyFacadeInterface
830
    {
831
        return $this->getProvidedDependency(HeidelpayDependencyProvider::FACADE_MONEY);
832
    }
833
834
    /**
835
     * @return \SprykerEco\Zed\Heidelpay\Dependency\Service\HeidelpayToUtilEncodingServiceInterface
836
     */
837
    public function getUtilEncodingService(): HeidelpayToUtilEncodingServiceInterface
838
    {
839
        return $this->getProvidedDependency(HeidelpayDependencyProvider::SERVICE_UTIL_ENCODING);
840
    }
841
842
    /**
843
     * @return \SprykerEco\Zed\Heidelpay\Business\Basket\BasketCreatorInterface
844
     */
845
    public function createBasketHanlder(): BasketCreatorInterface
846
    {
847
        return new BasketCreator(
848
            $this->createAdapterFactory()->createBasketAdapter()
849
        );
850
    }
851
852
    /**
853
     * @return \SprykerEco\Zed\Heidelpay\Business\Payment\PaymentMethodFilterInterface
854
     */
855
    public function createPaymentMethodFilter(): PaymentMethodFilterInterface
856
    {
857
        return new PaymentMethodFilter(
858
            $this->getConfig(),
859
            $this->getMoneyFacade()
860
        );
861
    }
862
}
863