IdealController::authorizeAction()   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
cc 1
eloc 4
nc 1
nop 0
dl 0
loc 8
rs 10
c 0
b 0
f 0
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\Yves\Heidelpay\Controller;
9
10
use Generated\Shared\Transfer\HeidelpayIdealAuthorizeFormTransfer;
11
use Generated\Shared\Transfer\HeidelpayTransactionLogTransfer;
12
use Spryker\Yves\Kernel\Controller\AbstractController;
13
14
/**
15
 * @method \SprykerEco\Yves\Heidelpay\HeidelpayFactory getFactory()
16
 * @method \SprykerEco\Client\Heidelpay\HeidelpayClientInterface getClient()
17
 */
18
class IdealController extends AbstractController
19
{
20
    /**
21
     * @return array
22
     */
23
    public function authorizeAction(): array
24
    {
25
        $orderReference = $this->getOrderReferenceFromSession();
26
        $idealAuthorizeFormTransfer = $this->getAuthorizeFormTransferForOrder($orderReference);
27
28
        return $this->viewResponse(
29
            [
30
                'idealAuthorizeForm' => $idealAuthorizeFormTransfer,
31
            ]
32
        );
33
    }
34
35
    /**
36
     * @return string
37
     */
38
    protected function getOrderReferenceFromSession(): string
39
    {
40
        return $this->getClient()
41
            ->getQuoteFromSession()
42
            ->getOrderReference();
43
    }
44
45
    /**
46
     * @param string $orderReference
47
     *
48
     * @return \Generated\Shared\Transfer\HeidelpayIdealAuthorizeFormTransfer
49
     */
50
    protected function getAuthorizeFormTransferForOrder($orderReference): HeidelpayIdealAuthorizeFormTransfer
51
    {
52
        $authorizeTransactionLogTransfer = $this->getClient()
53
            ->getAuthorizeTransactionLogForOrder($orderReference);
54
55
        $idealAuthorizeFormTransfer = new HeidelpayIdealAuthorizeFormTransfer();
56
57
        $this->mapTransactionLogToAuthorizeFormTransfer(
58
            $authorizeTransactionLogTransfer,
59
            $idealAuthorizeFormTransfer
60
        );
61
62
        return $idealAuthorizeFormTransfer;
63
    }
64
65
    /**
66
     * @param \Generated\Shared\Transfer\HeidelpayTransactionLogTransfer $authorizeTransactionLogTransfer
67
     * @param \Generated\Shared\Transfer\HeidelpayIdealAuthorizeFormTransfer $idealAuthorizeFormTransfer
68
     *
69
     * @return void
70
     */
71
    protected function mapTransactionLogToAuthorizeFormTransfer(HeidelpayTransactionLogTransfer $authorizeTransactionLogTransfer, HeidelpayIdealAuthorizeFormTransfer $idealAuthorizeFormTransfer): void
72
    {
73
        $this->getFactory()
74
            ->createHeidelpayResponseToIdealAuthorizeFormMapper()
75
            ->map($authorizeTransactionLogTransfer->getHeidelpayResponse(), $idealAuthorizeFormTransfer);
76
    }
77
}
78