HeidelpayEntityManager   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 108
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 7
eloc 39
dl 0
loc 108
c 2
b 0
f 1
rs 10

7 Methods

Rating   Name   Duplication   Size   Complexity  
A savePaymentHeidelpayNotificationEntity() 0 16 1
A getPaymentHeidelpayDirectDebitRegistrationQuery() 0 3 1
A savePaymentHeidelpayDirectDebitRegistrationEntity() 0 21 1
A getMapper() 0 3 1
A getPaymentHeidelpayNotificationQuery() 0 3 1
A getPaymentHeidelpayQuery() 0 3 1
A savePaymentHeidelpayEntity() 0 15 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\Persistence;
9
10
use Generated\Shared\Transfer\HeidelpayDirectDebitRegistrationTransfer;
11
use Generated\Shared\Transfer\HeidelpayNotificationTransfer;
12
use Generated\Shared\Transfer\HeidelpayPaymentTransfer;
13
use Orm\Zed\Heidelpay\Persistence\SpyPaymentHeidelpayDirectDebitRegistrationQuery;
14
use Orm\Zed\Heidelpay\Persistence\SpyPaymentHeidelpayNotificationQuery;
15
use Orm\Zed\Heidelpay\Persistence\SpyPaymentHeidelpayQuery;
16
use Spryker\Zed\Kernel\Persistence\AbstractEntityManager;
17
use SprykerEco\Zed\Heidelpay\Persistence\Propel\Mapper\HeidelpayPersistenceMapper;
18
19
/**
20
 * @method \SprykerEco\Zed\Heidelpay\Persistence\HeidelpayPersistenceFactory getFactory()
21
 */
22
class HeidelpayEntityManager extends AbstractEntityManager implements HeidelpayEntityManagerInterface
23
{
24
    /**
25
     * @param \Generated\Shared\Transfer\HeidelpayPaymentTransfer $heidelpayPaymentTransfer
26
     *
27
     * @return \Generated\Shared\Transfer\HeidelpayPaymentTransfer
28
     */
29
    public function savePaymentHeidelpayEntity(HeidelpayPaymentTransfer $heidelpayPaymentTransfer): HeidelpayPaymentTransfer
30
    {
31
        $paymentHeidelpayEntity = $this->getPaymentHeidelpayQuery()
32
            ->filterByFkSalesOrder($heidelpayPaymentTransfer->getFkSalesOrder())
33
            ->findOneOrCreate();
34
35
        $paymentHeidelpayEntity->fromArray(
36
            $heidelpayPaymentTransfer->modifiedToArray()
37
        );
38
        $paymentHeidelpayEntity->save();
39
40
        return $this->getMapper()
41
            ->mapEntityToHeidelpayPaymentTransfer(
42
                $paymentHeidelpayEntity,
43
                $heidelpayPaymentTransfer
44
            );
45
    }
46
47
    /**
48
     * @param \Generated\Shared\Transfer\HeidelpayNotificationTransfer $heidelpayNotificationTransfer
49
     *
50
     * @return \Generated\Shared\Transfer\HeidelpayNotificationTransfer
51
     */
52
    public function savePaymentHeidelpayNotificationEntity(
53
        HeidelpayNotificationTransfer $heidelpayNotificationTransfer
54
    ): HeidelpayNotificationTransfer {
55
        $paymentHeidelpayNotificationEntity = $this->getPaymentHeidelpayNotificationQuery()
56
            ->filterByUniqueId($heidelpayNotificationTransfer->getUniqueId())
57
            ->findOneOrCreate();
58
59
        $paymentHeidelpayNotificationEntity->fromArray(
60
            $heidelpayNotificationTransfer->modifiedToArray()
61
        );
62
        $paymentHeidelpayNotificationEntity->save();
63
64
        return $this->getMapper()
65
            ->mapEntityToHeidelpayNotificationTransfer(
66
                $paymentHeidelpayNotificationEntity,
67
                $heidelpayNotificationTransfer
68
            );
69
    }
70
71
    /**
72
     * @param \Generated\Shared\Transfer\HeidelpayDirectDebitRegistrationTransfer $directDebitRegistrationTransfer
73
     *
74
     * @return \Generated\Shared\Transfer\HeidelpayDirectDebitRegistrationTransfer
75
     */
76
    public function savePaymentHeidelpayDirectDebitRegistrationEntity(
77
        HeidelpayDirectDebitRegistrationTransfer $directDebitRegistrationTransfer
78
    ): HeidelpayDirectDebitRegistrationTransfer {
79
        $paymentHeidelpayDirectDebitRegistrationEntity = $this->getPaymentHeidelpayDirectDebitRegistrationQuery()
80
            ->filterByRegistrationUniqueId($directDebitRegistrationTransfer->getRegistrationUniqueId())
81
            ->findOneOrCreate();
82
83
        $paymentHeidelpayDirectDebitRegistrationEntity->fromArray(
84
            $directDebitRegistrationTransfer->getAccountInfo()->modifiedToArray()
85
        );
86
        $paymentHeidelpayDirectDebitRegistrationEntity
87
            ->setFkCustomerAddress($directDebitRegistrationTransfer->getIdCustomerAddress())
88
            ->setRegistrationUniqueId($directDebitRegistrationTransfer->getRegistrationUniqueId())
89
            ->setTransactionId($directDebitRegistrationTransfer->getTransactionId());
90
91
        $paymentHeidelpayDirectDebitRegistrationEntity->save();
92
93
        return $this->getMapper()
94
            ->mapEntityToHeidelpayDirectDebitRegistrationTransfer(
95
                $paymentHeidelpayDirectDebitRegistrationEntity,
96
                $directDebitRegistrationTransfer
97
            );
98
    }
99
100
    /**
101
     * @return \SprykerEco\Zed\Heidelpay\Persistence\Propel\Mapper\HeidelpayPersistenceMapper
102
     */
103
    protected function getMapper(): HeidelpayPersistenceMapper
104
    {
105
        return $this->getFactory()->createHeidelpayPersistenceMapper();
106
    }
107
108
    /**
109
     * @return \Orm\Zed\Heidelpay\Persistence\SpyPaymentHeidelpayQuery
110
     */
111
    protected function getPaymentHeidelpayQuery(): SpyPaymentHeidelpayQuery
112
    {
113
        return $this->getFactory()->createPaymentHeidelpayQuery();
114
    }
115
116
    /**
117
     * @return \Orm\Zed\Heidelpay\Persistence\SpyPaymentHeidelpayNotificationQuery
118
     */
119
    protected function getPaymentHeidelpayNotificationQuery(): SpyPaymentHeidelpayNotificationQuery
120
    {
121
        return $this->getFactory()->createPaymentHeidelpayNotificationQuery();
122
    }
123
124
    /**
125
     * @return \Orm\Zed\Heidelpay\Persistence\SpyPaymentHeidelpayDirectDebitRegistrationQuery
126
     */
127
    protected function getPaymentHeidelpayDirectDebitRegistrationQuery(): SpyPaymentHeidelpayDirectDebitRegistrationQuery
128
    {
129
        return $this->getFactory()->createPaymentHeidelpayDirectDebitRegistrationQuery();
130
    }
131
}
132