DirectDebitPayment::debitOnRegistration()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 4
dl 0
loc 8
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\Adapter\Payment;
9
10
use Generated\Shared\Transfer\HeidelpayRequestTransfer;
11
use Generated\Shared\Transfer\HeidelpayResponseTransfer;
12
use Heidelpay\PhpPaymentApi\PaymentMethods\DirectDebitPaymentMethod;
13
14
class DirectDebitPayment extends BasePayment implements DirectDebitPaymentInterface
15
{
16
    /**
17
     * @param \Generated\Shared\Transfer\HeidelpayRequestTransfer $registerRequestTransfer
18
     *
19
     * @return \Generated\Shared\Transfer\HeidelpayResponseTransfer
20
     */
21
    public function register(HeidelpayRequestTransfer $registerRequestTransfer): HeidelpayResponseTransfer
22
    {
23
        $directDebitPaymentMethod = new DirectDebitPaymentMethod();
24
        $this->prepareRequest($registerRequestTransfer, $directDebitPaymentMethod->getRequest());
25
26
        $directDebitPaymentMethod->registration();
27
28
        return $this->verifyAndParseResponse($directDebitPaymentMethod->getResponse());
29
    }
30
31
    /**
32
     * @param \Generated\Shared\Transfer\HeidelpayRequestTransfer $debitOnRegistrationRequestTransfer
33
     *
34
     * @return \Generated\Shared\Transfer\HeidelpayResponseTransfer
35
     */
36
    public function debitOnRegistration(HeidelpayRequestTransfer $debitOnRegistrationRequestTransfer): HeidelpayResponseTransfer
37
    {
38
        $directDebitPaymentMethod = new DirectDebitPaymentMethod();
39
        $this->prepareRequest($debitOnRegistrationRequestTransfer, $directDebitPaymentMethod->getRequest());
40
41
        $directDebitPaymentMethod->debitOnRegistration($debitOnRegistrationRequestTransfer->getIdPaymentRegistration());
42
43
        return $this->verifyAndParseResponse($directDebitPaymentMethod->getResponse());
44
    }
45
46
    /**
47
     * @param \Generated\Shared\Transfer\HeidelpayRequestTransfer $refundRequestTransfer
48
     *
49
     * @return \Generated\Shared\Transfer\HeidelpayResponseTransfer
50
     */
51
    public function refund(HeidelpayRequestTransfer $refundRequestTransfer)
52
    {
53
        $directDebitPaymentMethod = new DirectDebitPaymentMethod();
54
        $this->prepareRequest($refundRequestTransfer, $directDebitPaymentMethod->getRequest());
55
56
        $directDebitPaymentMethod->refund($refundRequestTransfer->getIdPaymentReference());
57
58
        return $this->verifyAndParseResponse($directDebitPaymentMethod->getResponse());
59
    }
60
}
61