Passed
Push — bugfix/supesc-213-is-capture-a... ( b6d348...db0ba1 )
by Anton
16:04
created

HeidelpayFacade::retrieveDirectDebitRegistration()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
c 0
b 0
f 0
dl 0
loc 6
rs 10
cc 1
nc 1
nop 1
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 Generated\Shared\Transfer\CheckoutResponseTransfer;
11
use Generated\Shared\Transfer\HeidelpayAuthorizeTransactionLogRequestTransfer;
12
use Generated\Shared\Transfer\HeidelpayCreditCardPaymentOptionsTransfer;
13
use Generated\Shared\Transfer\HeidelpayCreditCardRegistrationTransfer;
14
use Generated\Shared\Transfer\HeidelpayDirectDebitPaymentOptionsTransfer;
15
use Generated\Shared\Transfer\HeidelpayDirectDebitRegistrationTransfer;
16
use Generated\Shared\Transfer\HeidelpayNotificationTransfer;
17
use Generated\Shared\Transfer\HeidelpayPaymentProcessingResponseTransfer;
18
use Generated\Shared\Transfer\HeidelpayPaymentTransfer;
19
use Generated\Shared\Transfer\HeidelpayRegistrationByIdAndQuoteRequestTransfer;
20
use Generated\Shared\Transfer\HeidelpayRegistrationRequestTransfer;
21
use Generated\Shared\Transfer\HeidelpayRegistrationSaveResponseTransfer;
22
use Generated\Shared\Transfer\HeidelpayResponseTransfer;
23
use Generated\Shared\Transfer\HeidelpayTransactionLogTransfer;
24
use Generated\Shared\Transfer\OrderTransfer;
25
use Generated\Shared\Transfer\PaymentMethodsTransfer;
26
use Generated\Shared\Transfer\QuoteTransfer;
27
use Generated\Shared\Transfer\SaveOrderTransfer;
28
use Spryker\Zed\Kernel\Business\AbstractFacade;
29
30
/**
31
 * @method \SprykerEco\Zed\Heidelpay\Business\HeidelpayBusinessFactory getFactory()
32
 * @method \SprykerEco\Zed\Heidelpay\Persistence\HeidelpayEntityManagerInterface getEntityManager()
33
 * @method \SprykerEco\Zed\Heidelpay\Persistence\HeidelpayRepositoryInterface getRepository()
34
 */
35
class HeidelpayFacade extends AbstractFacade implements HeidelpayFacadeInterface
36
{
37
    /**
38
     * {@inheritDoc}
39
     *
40
     * @api
41
     *
42
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
43
     * @param \Generated\Shared\Transfer\CheckoutResponseTransfer $checkoutResponseTransfer
44
     *
45
     * @return \Generated\Shared\Transfer\CheckoutResponseTransfer
46
     */
47
    public function postSaveHook(QuoteTransfer $quoteTransfer, CheckoutResponseTransfer $checkoutResponseTransfer): CheckoutResponseTransfer
48
    {
49
        return $this->getFactory()
50
            ->createPostSaveHook()
51
            ->execute($quoteTransfer, $checkoutResponseTransfer);
52
    }
53
54
    /**
55
     * {@inheritDoc}
56
     *
57
     * @api
58
     *
59
     * @param array $externalResponse
60
     *
61
     * @return \Generated\Shared\Transfer\HeidelpayPaymentProcessingResponseTransfer
62
     */
63
    public function processExternalPaymentResponse(array $externalResponse): HeidelpayPaymentProcessingResponseTransfer
64
    {
65
        return $this->getFactory()
66
            ->createExternalResponseTransactionHandler()
67
            ->processExternalPaymentResponse($externalResponse);
68
    }
69
70
    /**
71
     * {@inheritDoc}
72
     *
73
     * @api
74
     *
75
     * @param array $externalResponse
76
     *
77
     * @return \Generated\Shared\Transfer\HeidelpayPaymentProcessingResponseTransfer
78
     */
79
    public function processExternalEasyCreditPaymentResponse(
80
        array $externalResponse
81
    ): HeidelpayPaymentProcessingResponseTransfer {
82
        return $this->getFactory()
83
            ->createEasyCreditInitializeExternalResponseTransactionHandler()
84
            ->processExternalEasyCreditPaymentResponse($externalResponse);
85
    }
86
87
    /**
88
     * {@inheritDoc}
89
     *
90
     * @api
91
     *
92
     * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
93
     *
94
     * @return void
95
     */
96
    public function authorizePayment(OrderTransfer $orderTransfer): void
97
    {
98
        $this->getFactory()
99
            ->createAuthorizeTransactionHandler()
100
            ->authorize($orderTransfer);
101
    }
102
103
    /**
104
     * {@inheritDoc}
105
     *
106
     * @api
107
     *
108
     * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
109
     *
110
     * @return \Generated\Shared\Transfer\HeidelpayResponseTransfer
111
     */
112
    public function authorizeOnRegistrationPayment(OrderTransfer $orderTransfer): HeidelpayResponseTransfer
113
    {
114
        return $this->getFactory()
115
            ->createAuthorizeOnRegistrationTransactionHandler()
116
            ->authorizeOnRegistration($orderTransfer);
117
    }
118
119
    /**
120
     * {@inheritDoc}
121
     *
122
     * @api
123
     *
124
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
125
     *
126
     * @return \Generated\Shared\Transfer\HeidelpayResponseTransfer
127
     */
128
    public function initializePayment(QuoteTransfer $quoteTransfer): HeidelpayResponseTransfer
129
    {
130
        return $this->getFactory()
131
            ->createInitializeTransactionHandler()
132
            ->initialize($quoteTransfer);
133
    }
134
135
    /**
136
     * {@inheritDoc}
137
     *
138
     * @api
139
     *
140
     * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
141
     *
142
     * @return void
143
     */
144
    public function debitPayment(OrderTransfer $orderTransfer): void
145
    {
146
        $this->getFactory()
147
            ->createDebitTransactionHandler()
148
            ->debit($orderTransfer);
149
    }
150
151
    /**
152
     * {@inheritDoc}
153
     *
154
     * @api
155
     *
156
     * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
157
     *
158
     * @return void
159
     */
160
    public function executeDebitOnRegistration(OrderTransfer $orderTransfer): void
161
    {
162
        $this->getFactory()
163
            ->createDebitOnRegistrationTransactionHandler()
164
            ->debitOnRegistration($orderTransfer);
165
    }
166
167
    /**
168
     * {@inheritDoc}
169
     *
170
     * @api
171
     *
172
     * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
173
     *
174
     * @return void
175
     */
176
    public function finalizePayment(OrderTransfer $orderTransfer): void
177
    {
178
        $this->getFactory()
179
            ->createFinalizeTransactionHandler()
180
            ->finalize($orderTransfer);
181
    }
182
183
    /**
184
     * {@inheritDoc}
185
     *
186
     * @api
187
     *
188
     * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
189
     *
190
     * @return void
191
     */
192
    public function executePaymentReservation(OrderTransfer $orderTransfer): void
193
    {
194
        $this->getFactory()
195
            ->createReservationTransactionHandler()
196
            ->executeReservation($orderTransfer);
197
    }
198
199
    /**
200
     * {@inheritDoc}
201
     *
202
     * @api
203
     *
204
     * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
205
     *
206
     * @return void
207
     */
208
    public function executeRefund(OrderTransfer $orderTransfer): void
209
    {
210
        $this->getFactory()
211
            ->createRefundTransactionHandler()
212
            ->executeRefund($orderTransfer);
213
    }
214
215
    /**
216
     * {@inheritDoc}
217
     *
218
     * @api
219
     *
220
     * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
221
     *
222
     * @return void
223
     */
224
    public function capturePayment(OrderTransfer $orderTransfer): void
225
    {
226
        $this->getFactory()
227
            ->createCaptureTransactionHandler()
228
            ->capture($orderTransfer);
229
    }
230
231
    /**
232
     * {@inheritDoc}
233
     *
234
     * @api
235
     *
236
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
237
     * @param \Generated\Shared\Transfer\SaveOrderTransfer $saveOrderTransfer
238
     *
239
     * @return void
240
     */
241
    public function saveOrderPayment(QuoteTransfer $quoteTransfer, SaveOrderTransfer $saveOrderTransfer): void
242
    {
243
        $this->getFactory()
244
            ->createOrderSaver()
245
            ->saveOrderPayment($quoteTransfer, $saveOrderTransfer);
246
    }
247
248
    /**
249
     * {@inheritDoc}
250
     *
251
     * @api
252
     *
253
     * @param int $idSalesOrder
254
     *
255
     * @return \Generated\Shared\Transfer\HeidelpayPaymentTransfer
256
     */
257
    public function getPaymentByIdSalesOrder(int $idSalesOrder): HeidelpayPaymentTransfer
258
    {
259
        return $this->getFactory()
260
            ->createPaymentReader()
261
            ->getPaymentByIdSalesOrder($idSalesOrder);
262
    }
263
264
    /**
265
     * {@inheritDoc}
266
     *
267
     * @api
268
     *
269
     * @param \Generated\Shared\Transfer\HeidelpayAuthorizeTransactionLogRequestTransfer $authorizeLogRequestTransfer
270
     *
271
     * @return \Generated\Shared\Transfer\HeidelpayTransactionLogTransfer
272
     */
273
    public function getAuthorizeTransactionLog(HeidelpayAuthorizeTransactionLogRequestTransfer $authorizeLogRequestTransfer): HeidelpayTransactionLogTransfer
274
    {
275
        return $this->getFactory()
276
            ->createTransactionLogReader()
277
            ->findOrderAuthorizeTransactionLogByOrderReference($authorizeLogRequestTransfer->getOrderReference());
278
    }
279
280
    /**
281
     * {@inheritDoc}
282
     *
283
     * @api
284
     *
285
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
286
     *
287
     * @return \Generated\Shared\Transfer\HeidelpayCreditCardPaymentOptionsTransfer
288
     */
289
    public function getCreditCardPaymentOptions(QuoteTransfer $quoteTransfer): HeidelpayCreditCardPaymentOptionsTransfer
290
    {
291
        return $this->getFactory()
292
            ->createPaymentOptionsCalculator()
293
            ->getCreditCardPaymentOptions($quoteTransfer);
294
    }
295
296
    /**
297
     * {@inheritDoc}
298
     *
299
     * @api
300
     *
301
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
302
     *
303
     * @return \Generated\Shared\Transfer\HeidelpayDirectDebitPaymentOptionsTransfer
304
     */
305
    public function getDirectDebitPaymentOptions(QuoteTransfer $quoteTransfer): HeidelpayDirectDebitPaymentOptionsTransfer
306
    {
307
        return $this->getFactory()
308
            ->createDirectDebitPaymentOptionsCalculator()
309
            ->getDirectDebitPaymentOptions($quoteTransfer);
310
    }
311
312
    /**
313
     * {@inheritDoc}
314
     *
315
     * @api
316
     *
317
     * @param \Generated\Shared\Transfer\HeidelpayRegistrationRequestTransfer $registrationRequestTransfer
318
     *
319
     * @return \Generated\Shared\Transfer\HeidelpayRegistrationSaveResponseTransfer
320
     */
321
    public function saveCreditCardRegistration(HeidelpayRegistrationRequestTransfer $registrationRequestTransfer): HeidelpayRegistrationSaveResponseTransfer
322
    {
323
        return $this->getFactory()
324
            ->createCreditCardRegistrationSaver()
325
            ->saveCreditCardRegistration($registrationRequestTransfer);
326
    }
327
328
    /**
329
     * {@inheritDoc}
330
     *
331
     * @api
332
     *
333
     * @param \Generated\Shared\Transfer\HeidelpayDirectDebitRegistrationTransfer $directDebitRegistrationTransfer
334
     *
335
     * @return \Generated\Shared\Transfer\HeidelpayDirectDebitRegistrationTransfer
336
     */
337
    public function saveDirectDebitRegistration(
338
        HeidelpayDirectDebitRegistrationTransfer $directDebitRegistrationTransfer
339
    ): HeidelpayDirectDebitRegistrationTransfer {
340
        return $this->getFactory()
341
            ->createDirectDebitRegistrationWriter()
342
            ->createDirectDebitRegistration($directDebitRegistrationTransfer);
343
    }
344
345
    /**
346
     * {@inheritDoc}
347
     *
348
     * @api
349
     *
350
     * @param \Generated\Shared\Transfer\HeidelpayRegistrationByIdAndQuoteRequestTransfer $findRegistrationRequestTransfer
351
     *
352
     * @return \Generated\Shared\Transfer\HeidelpayCreditCardRegistrationTransfer
353
     */
354
    public function findCreditCardRegistrationByIdAndQuote(
355
        HeidelpayRegistrationByIdAndQuoteRequestTransfer $findRegistrationRequestTransfer
356
    ): HeidelpayCreditCardRegistrationTransfer {
357
        return $this->getFactory()
358
            ->createCreditCardRegistrationReader()
359
            ->findCreditCardRegistrationByIdAndQuote(
360
                $findRegistrationRequestTransfer->getIdRegistration(),
361
                $findRegistrationRequestTransfer->getQuote()
362
            );
363
    }
364
365
    /**
366
     * {@inheritDoc}
367
     *
368
     * @api
369
     *
370
     * @param \Generated\Shared\Transfer\HeidelpayDirectDebitRegistrationTransfer $directDebitRegistrationTransfer
371
     *
372
     * @return \Generated\Shared\Transfer\HeidelpayDirectDebitRegistrationTransfer
373
     */
374
    public function retrieveDirectDebitRegistration(
375
        HeidelpayDirectDebitRegistrationTransfer $directDebitRegistrationTransfer
376
    ): HeidelpayDirectDebitRegistrationTransfer {
377
        return $this->getFactory()
378
            ->createDirectDebitRegistrationReader()
379
            ->retrieveDirectDebitRegistration($directDebitRegistrationTransfer);
380
    }
381
382
    /**
383
     * {@inheritDoc}
384
     *
385
     * @api
386
     *
387
     * @param \Generated\Shared\Transfer\PaymentMethodsTransfer $paymentMethodsTransfer
388
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
389
     *
390
     * @return \Generated\Shared\Transfer\PaymentMethodsTransfer
391
     */
392
    public function filterPaymentMethods(PaymentMethodsTransfer $paymentMethodsTransfer, QuoteTransfer $quoteTransfer): PaymentMethodsTransfer
393
    {
394
        return $this->getFactory()
395
            ->createPaymentMethodFilter()
396
            ->filterPaymentMethods($paymentMethodsTransfer, $quoteTransfer);
397
    }
398
399
    /**
400
     * {@inheritDoc}
401
     *
402
     * @api
403
     *
404
     * @param \Generated\Shared\Transfer\HeidelpayNotificationTransfer $notificationTransfer
405
     *
406
     * @return \Generated\Shared\Transfer\HeidelpayNotificationTransfer
407
     */
408
    public function processNotification(HeidelpayNotificationTransfer $notificationTransfer): HeidelpayNotificationTransfer
409
    {
410
        return $this->getFactory()
411
            ->createHeidelpayNotificationProcessor()
412
            ->processNotification($notificationTransfer);
413
    }
414
415
    /**
416
     * {@inheritDoc}
417
     *
418
     * @api
419
     *
420
     * @param int $idSalesOrder
421
     *
422
     * @return bool
423
     */
424
    public function isSalesOrderCaptureApproved(int $idSalesOrder): bool
425
    {
426
        return $this->getFactory()
427
            ->createSalesOrderChecker()
428
            ->isCaptureApproved($idSalesOrder);
429
    }
430
431
    /**
432
     * {@inheritDoc}
433
     *
434
     * @api
435
     *
436
     * @param int $idSalesOrder
437
     *
438
     * @return bool
439
     */
440
    public function isSalesOrderRefunded(int $idSalesOrder): bool
441
    {
442
        return $this->getFactory()
443
            ->createSalesOrderChecker()
444
            ->isRefunded($idSalesOrder);
445
    }
446
447
    /**
448
     * {@inheritDoc}
449
     *
450
     * @api
451
     *
452
     * @param int $idSalesOrder
453
     *
454
     * @return bool
455
     */
456
    public function isSalesOrderDebitOnRegistrationCompleted(int $idSalesOrder): bool
457
    {
458
        return $this->getFactory()
459
            ->createSalesOrderChecker()
460
            ->isDebitOnRegistrationCompleted($idSalesOrder);
461
    }
462
}
463