Passed
Push — bugfix/supesc-213-is-capture-a... ( b6d348...db0ba1 )
by Anton
16:04
created

HeidelpayRepository::getPaymentHeidelpayTransactionLogQuery()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
c 0
b 0
f 0
rs 10
cc 1
nc 1
nop 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\Zed\Heidelpay\Persistence;
9
10
use Generated\Shared\Transfer\HeidelpayDirectDebitRegistrationTransfer;
11
use Generated\Shared\Transfer\HeidelpayNotificationCollectionTransfer;
12
use Generated\Shared\Transfer\HeidelpayNotificationTransfer;
13
use Generated\Shared\Transfer\HeidelpayPaymentTransfer;
14
use Generated\Shared\Transfer\HeidelpayTransactionLogTransfer;
15
use Orm\Zed\Heidelpay\Persistence\SpyPaymentHeidelpayDirectDebitRegistrationQuery;
16
use Orm\Zed\Heidelpay\Persistence\SpyPaymentHeidelpayNotificationQuery;
17
use Orm\Zed\Heidelpay\Persistence\SpyPaymentHeidelpayQuery;
18
use Spryker\Zed\Kernel\Persistence\AbstractRepository;
19
use Spryker\Zed\PropelOrm\Business\Runtime\ActiveQuery\Criteria;
20
use SprykerEco\Zed\Heidelpay\Persistence\Propel\Mapper\HeidelpayPersistenceMapper;
21
22
/**
23
 * @method \SprykerEco\Zed\Heidelpay\Persistence\HeidelpayPersistenceFactory getFactory()
24
 */
25
class HeidelpayRepository extends AbstractRepository implements HeidelpayRepositoryInterface
26
{
27
    /**
28
     * @param int $idSalesOrder
29
     *
30
     * @return \Generated\Shared\Transfer\HeidelpayPaymentTransfer|null
31
     */
32
    public function findHeidelpayPaymentByIdSalesOrder(int $idSalesOrder): ?HeidelpayPaymentTransfer
33
    {
34
        $paymentHeidelpayEntity = $this->getPaymentHeidelpayQuery()
35
            ->filterByFkSalesOrder($idSalesOrder)
36
            ->findOne();
37
38
        if ($paymentHeidelpayEntity === null) {
39
            return null;
40
        }
41
42
        return $this->getMapper()
43
            ->mapEntityToHeidelpayPaymentTransfer(
44
                $paymentHeidelpayEntity,
45
                new HeidelpayPaymentTransfer()
46
            );
47
    }
48
49
    /**
50
     * @param string $uniqueId
51
     *
52
     * @return \Generated\Shared\Transfer\HeidelpayNotificationTransfer|null
53
     */
54
    public function findPaymentHeidelpayNotificationByUniqueId(string $uniqueId): ?HeidelpayNotificationTransfer
55
    {
56
        $paymentHeidelpayNotification = $this->getPaymentHeidelpayNotificationQuery()
57
            ->filterByUniqueId($uniqueId)
58
            ->findOne();
59
60
        if ($paymentHeidelpayNotification === null) {
61
            return null;
62
        }
63
64
        return $this->getMapper()
65
            ->mapEntityToHeidelpayNotificationTransfer(
66
                $paymentHeidelpayNotification,
67
                new HeidelpayNotificationTransfer()
68
            );
69
    }
70
71
    /**
72
     * @param string $transactionId
73
     * @param string $paymentCode
74
     *
75
     * @return \Generated\Shared\Transfer\HeidelpayNotificationCollectionTransfer
76
     */
77
    public function getPaymentHeidelpayNotificationCollectionByTransactionIdAndPaymentCode(
78
        string $transactionId,
79
        string $paymentCode
80
    ): HeidelpayNotificationCollectionTransfer {
81
        $paymentHeidelpayNotification = $this->getPaymentHeidelpayNotificationQuery()
82
            ->filterByTransactionId($transactionId)
83
            ->filterByPaymentCode($paymentCode)
84
            ->find();
85
86
        return $this->getMapper()
87
            ->mapNotificationEntitiesToHeidelpayNotificationCollection(
88
                $paymentHeidelpayNotification,
89
                new HeidelpayNotificationCollectionTransfer()
90
            );
91
    }
92
93
    /**
94
     * @param string $registrationUniqueId
95
     *
96
     * @return \Generated\Shared\Transfer\HeidelpayDirectDebitRegistrationTransfer|null
97
     */
98
    public function findHeidelpayDirectDebitRegistrationByRegistrationUniqueId(
99
        string $registrationUniqueId
100
    ): ?HeidelpayDirectDebitRegistrationTransfer {
101
        $paymentHeidelpayDirectDebitRegistrationEntity = $this->getPaymentHeidelpayDirectDebitRegistrationQuery()
102
            ->filterByRegistrationUniqueId($registrationUniqueId)
103
            ->findOne();
104
105
        if ($paymentHeidelpayDirectDebitRegistrationEntity === null) {
106
            return null;
107
        }
108
109
        return $this->getMapper()
110
            ->mapEntityToHeidelpayDirectDebitRegistrationTransfer(
111
                $paymentHeidelpayDirectDebitRegistrationEntity,
112
                new HeidelpayDirectDebitRegistrationTransfer()
113
            );
114
    }
115
116
    /**
117
     * @param int $idCustomerAddress
118
     *
119
     * @return \Generated\Shared\Transfer\HeidelpayDirectDebitRegistrationTransfer|null
120
     */
121
    public function findLastHeidelpayDirectDebitRegistrationByIdCustomerAddress(
122
        int $idCustomerAddress
123
    ): ?HeidelpayDirectDebitRegistrationTransfer {
124
        $paymentHeidelpayDirectDebitRegistrationEntity = $this->getPaymentHeidelpayDirectDebitRegistrationQuery()
125
            ->filterByFkCustomerAddress($idCustomerAddress)
126
            ->orderByIdDirectDebitRegistration(Criteria::DESC)
127
            ->findOne();
128
129
        if ($paymentHeidelpayDirectDebitRegistrationEntity === null) {
130
            return null;
131
        }
132
133
        return $this->getMapper()
134
            ->mapEntityToHeidelpayDirectDebitRegistrationTransfer(
135
                $paymentHeidelpayDirectDebitRegistrationEntity,
136
                new HeidelpayDirectDebitRegistrationTransfer()
137
            );
138
    }
139
140
    /**
141
     * @param int $idRegistration
142
     * @param string $transactionId
143
     *
144
     * @return \Generated\Shared\Transfer\HeidelpayDirectDebitRegistrationTransfer|null
145
     */
146
    public function findHeidelpayDirectDebitRegistrationByIdAndTransactionId(
147
        int $idRegistration,
148
        string $transactionId
149
    ): ?HeidelpayDirectDebitRegistrationTransfer {
150
        $paymentHeidelpayDirectDebitRegistrationEntity = $this->getPaymentHeidelpayDirectDebitRegistrationQuery()
151
            ->filterByIdDirectDebitRegistration($idRegistration)
152
            ->filterByTransactionId($transactionId)
153
            ->findOne();
154
155
        if ($paymentHeidelpayDirectDebitRegistrationEntity === null) {
156
            return null;
157
        }
158
159
        return $this->getMapper()
160
            ->mapEntityToHeidelpayDirectDebitRegistrationTransfer(
161
                $paymentHeidelpayDirectDebitRegistrationEntity,
162
                new HeidelpayDirectDebitRegistrationTransfer()
163
            );
164
    }
165
166
    /**
167
     * @param int $idSalesOrder
168
     * @param string $transactionType
169
     * @param string $responseCode
170
     *
171
     * @return \Generated\Shared\Transfer\HeidelpayTransactionLogTransfer|null
172
     */
173
    public function findHeidelpayTransactionLogByIdSalesOrderAndTransactionTypeAndResponseCode(
174
        int $idSalesOrder,
175
        string $transactionType,
176
        string $responseCode
177
    ): ?HeidelpayTransactionLogTransfer {
178
        $paymentHeidelpayTransactionLogEntity = $this->getFactory()->createPaymentHeidelpayTransactionLogQuery()
179
            ->filterByFkSalesOrder($idSalesOrder)
180
            ->filterByTransactionType($transactionType)
181
            ->filterByResponseCode($responseCode)
182
            ->findOne();
183
184
        if ($paymentHeidelpayTransactionLogEntity === null) {
185
            return null;
186
        }
187
188
        return $this->getMapper()
189
            ->mapEntityToHeidelpayTransactionLogTransfer(
190
                $paymentHeidelpayTransactionLogEntity,
191
                new HeidelpayTransactionLogTransfer()
192
            );
193
    }
194
195
    /**
196
     * @return \SprykerEco\Zed\Heidelpay\Persistence\Propel\Mapper\HeidelpayPersistenceMapper
197
     */
198
    protected function getMapper(): HeidelpayPersistenceMapper
199
    {
200
        return $this->getFactory()->createHeidelpayPersistenceMapper();
201
    }
202
203
    /**
204
     * @return \Orm\Zed\Heidelpay\Persistence\SpyPaymentHeidelpayQuery
205
     */
206
    protected function getPaymentHeidelpayQuery(): SpyPaymentHeidelpayQuery
207
    {
208
        return $this->getFactory()->createPaymentHeidelpayQuery();
209
    }
210
211
    /**
212
     * @return \Orm\Zed\Heidelpay\Persistence\SpyPaymentHeidelpayNotificationQuery
213
     */
214
    protected function getPaymentHeidelpayNotificationQuery(): SpyPaymentHeidelpayNotificationQuery
215
    {
216
        return $this->getFactory()->createPaymentHeidelpayNotificationQuery();
217
    }
218
219
    /**
220
     * @return \Orm\Zed\Heidelpay\Persistence\SpyPaymentHeidelpayDirectDebitRegistrationQuery
221
     */
222
    protected function getPaymentHeidelpayDirectDebitRegistrationQuery(): SpyPaymentHeidelpayDirectDebitRegistrationQuery
223
    {
224
        return $this->getFactory()->createPaymentHeidelpayDirectDebitRegistrationQuery();
225
    }
226
}
227