EasyCreditPayment   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 77
Duplicated Lines 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
wmc 5
eloc 24
c 3
b 0
f 0
dl 0
loc 77
rs 10

5 Methods

Rating   Name   Duplication   Size   Complexity  
A reserve() 0 10 1
A finalize() 0 7 1
A initialize() 0 7 1
A setFrontendDisabled() 0 8 1
A authorizeOnRegistration() 0 7 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\EasyCreditPaymentMethod;
13
use Heidelpay\PhpPaymentApi\Request;
14
15
class EasyCreditPayment extends BasePayment implements EasyCreditPaymentInterface
16
{
17
    protected const FRONTEND_DISABLED_VALUE = 'FALSE';
18
19
    /**
20
     * @param \Generated\Shared\Transfer\HeidelpayRequestTransfer $authorizeRequestTransfer
21
     *
22
     * @return \Generated\Shared\Transfer\HeidelpayResponseTransfer
23
     */
24
    public function authorizeOnRegistration(HeidelpayRequestTransfer $authorizeRequestTransfer)
25
    {
26
        $easyCreditMethod = new EasyCreditPaymentMethod();
27
        $this->prepareRequest($authorizeRequestTransfer, $easyCreditMethod->getRequest());
28
        $easyCreditMethod->authorizeOnRegistration($authorizeRequestTransfer->getIdPaymentRegistration());
29
30
        return $this->verifyAndParseResponse($easyCreditMethod->getResponse());
31
    }
32
33
    /**
34
     * @param \Generated\Shared\Transfer\HeidelpayRequestTransfer $initializeRequestTransfer
35
     *
36
     * @return \Generated\Shared\Transfer\HeidelpayResponseTransfer
37
     */
38
    public function initialize(HeidelpayRequestTransfer $initializeRequestTransfer): HeidelpayResponseTransfer
39
    {
40
        $easyCreditMethod = new EasyCreditPaymentMethod();
41
        $this->prepareRequest($initializeRequestTransfer, $easyCreditMethod->getRequest());
42
        $easyCreditMethod->initialize();
43
44
        return $this->verifyAndParseResponse($easyCreditMethod->getResponse());
45
    }
46
47
    /**
48
     * @param \Generated\Shared\Transfer\HeidelpayRequestTransfer $reservationRequestTransfer
49
     *
50
     * @return \Generated\Shared\Transfer\HeidelpayResponseTransfer
51
     */
52
    public function reserve(HeidelpayRequestTransfer $reservationRequestTransfer): HeidelpayResponseTransfer
53
    {
54
        $easyCreditMethod = new EasyCreditPaymentMethod();
55
        $request = $easyCreditMethod->getRequest();
56
        $this->setFrontendDisabled($request, $reservationRequestTransfer);
57
58
        $this->prepareRequest($reservationRequestTransfer, $request);
59
        $easyCreditMethod->authorizeOnRegistration($reservationRequestTransfer->getIdPaymentReference());
60
61
        return $this->verifyAndParseResponse($easyCreditMethod->getResponse());
62
    }
63
64
    /**
65
     * @param \Generated\Shared\Transfer\HeidelpayRequestTransfer $finalizeRequestTransfer
66
     *
67
     * @return \Generated\Shared\Transfer\HeidelpayResponseTransfer
68
     */
69
    public function finalize(HeidelpayRequestTransfer $finalizeRequestTransfer): HeidelpayResponseTransfer
70
    {
71
        $easyCreditMethod = new EasyCreditPaymentMethod();
72
        $this->prepareRequest($finalizeRequestTransfer, $easyCreditMethod->getRequest());
73
        $easyCreditMethod->finalize($finalizeRequestTransfer->getIdPaymentReference());
74
75
        return $this->verifyAndParseResponse($easyCreditMethod->getResponse());
76
    }
77
78
    /**
79
     * @param \Heidelpay\PhpPaymentApi\Request $request
80
     * @param \Generated\Shared\Transfer\HeidelpayRequestTransfer $reservationRequestTransfer
81
     *
82
     * @return void
83
     */
84
    protected function setFrontendDisabled(
85
        Request $request,
86
        HeidelpayRequestTransfer $reservationRequestTransfer
87
    ): void {
88
        $request->getFrontend()->setEnabled(static::FRONTEND_DISABLED_VALUE);
89
        $async = $reservationRequestTransfer->getAsync();
90
        $async->setResponseUrl(null);
91
        $reservationRequestTransfer->setAsync($async);
92
    }
93
}
94