RegistrationSaver::saveCreditCardRegistration()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 3 Features 0
Metric Value
eloc 3
c 3
b 3
f 0
dl 0
loc 6
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\Payment\CreditCard\Registration;
9
10
use Generated\Shared\Transfer\HeidelpayRegistrationRequestTransfer;
11
use Generated\Shared\Transfer\HeidelpayRegistrationSaveResponseTransfer;
12
use Orm\Zed\Heidelpay\Persistence\SpyPaymentHeidelpayCreditCardRegistration;
13
use SprykerEco\Zed\Heidelpay\Persistence\HeidelpayQueryContainerInterface;
14
15
class RegistrationSaver implements RegistrationSaverInterface
16
{
17
    /**
18
     * @var \SprykerEco\Zed\Heidelpay\Persistence\HeidelpayQueryContainerInterface
19
     */
20
    protected $heidelpayQueryContainer;
21
22
    /**
23
     * @param \SprykerEco\Zed\Heidelpay\Persistence\HeidelpayQueryContainerInterface $heidelpayQueryContainer
24
     */
25
    public function __construct(HeidelpayQueryContainerInterface $heidelpayQueryContainer)
26
    {
27
        $this->heidelpayQueryContainer = $heidelpayQueryContainer;
28
    }
29
30
    /**
31
     * @param \Generated\Shared\Transfer\HeidelpayRegistrationRequestTransfer $registrationRequestTransfer
32
     *
33
     * @return \Generated\Shared\Transfer\HeidelpayRegistrationSaveResponseTransfer
34
     */
35
    public function saveCreditCardRegistration(HeidelpayRegistrationRequestTransfer $registrationRequestTransfer): HeidelpayRegistrationSaveResponseTransfer
36
    {
37
        $spyCreditCardRegistration = $this->buildRegistrationEntityFromRequest($registrationRequestTransfer);
38
        $spyCreditCardRegistration->save();
39
40
        return $this->buildRegistrationSaveResponse($spyCreditCardRegistration);
41
    }
42
43
    /**
44
     * @param \Generated\Shared\Transfer\HeidelpayRegistrationRequestTransfer $registrationRequestTransfer
45
     *
46
     * @return \Orm\Zed\Heidelpay\Persistence\SpyPaymentHeidelpayCreditCardRegistration
47
     */
48
    protected function buildRegistrationEntityFromRequest(
49
        HeidelpayRegistrationRequestTransfer $registrationRequestTransfer
50
    ): SpyPaymentHeidelpayCreditCardRegistration {
51
        $spyCreditCardRegistration = new SpyPaymentHeidelpayCreditCardRegistration();
52
53
        $spyCreditCardRegistration->fromArray(
54
            $registrationRequestTransfer->getCreditCardInfo()->toArray()
55
        );
56
57
        $spyCreditCardRegistration
58
            ->setQuoteHash($registrationRequestTransfer->getQuoteHash())
59
            ->setRegistrationNumber($registrationRequestTransfer->getRegistrationHash());
60
61
        return $spyCreditCardRegistration;
62
    }
63
64
    /**
65
     * @param \Orm\Zed\Heidelpay\Persistence\SpyPaymentHeidelpayCreditCardRegistration $spyCreditCardRegistration
66
     *
67
     * @return \Generated\Shared\Transfer\HeidelpayRegistrationSaveResponseTransfer
68
     */
69
    protected function buildRegistrationSaveResponse(
70
        SpyPaymentHeidelpayCreditCardRegistration $spyCreditCardRegistration
71
    ): HeidelpayRegistrationSaveResponseTransfer {
72
        $registrationSaveResponse = new HeidelpayRegistrationSaveResponseTransfer();
73
        $registrationSaveResponse->setIdRegistration($spyCreditCardRegistration->getIdCreditCardRegistration());
74
75
        return $registrationSaveResponse;
76
    }
77
}
78