Passed
Push — bugfix/supesc-213-is-capture-a... ( b2b98a )
by Roman
08:15
created

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