Completed
Push — master ( 2a18cf...56a686 )
by Oleksandr
14s queued 11s
created

HeidelpayBusinessFactory::createBasketHanlder()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

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