DirectDebitPayment   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 45
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 3
eloc 13
c 2
b 0
f 0
dl 0
loc 45
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A register() 0 8 1
A debitOnRegistration() 0 8 1
A refund() 0 8 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