FinalizeTransaction::logTransaction()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 4
c 1
b 0
f 0
dl 0
loc 8
rs 10
cc 1
nc 1
nop 2
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\Transaction;
9
10
use Generated\Shared\Transfer\HeidelpayRequestTransfer;
11
use Generated\Shared\Transfer\HeidelpayResponseTransfer;
12
use SprykerEco\Shared\Heidelpay\HeidelpayConfig;
13
use SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Logger\TransactionLoggerInterface;
14
use SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithFinalizeInterface;
15
16
class FinalizeTransaction implements FinalizeTransactionInterface
17
{
18
    /**
19
     * @var \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Logger\TransactionLoggerInterface
20
     */
21
    protected $transactionLogger;
22
23
    /**
24
     * @param \SprykerEco\Zed\Heidelpay\Business\Payment\Transaction\Logger\TransactionLoggerInterface $transactionLogger
25
     */
26
    public function __construct(TransactionLoggerInterface $transactionLogger)
27
    {
28
        $this->transactionLogger = $transactionLogger;
29
    }
30
31
    /**
32
     * @param \Generated\Shared\Transfer\HeidelpayRequestTransfer $finalizeRequestTransfer
33
     * @param \SprykerEco\Zed\Heidelpay\Business\Payment\Type\PaymentWithFinalizeInterface $paymentAdapter
34
     *
35
     * @return \Generated\Shared\Transfer\HeidelpayResponseTransfer
36
     */
37
    public function executeTransaction(
38
        HeidelpayRequestTransfer $finalizeRequestTransfer,
39
        PaymentWithFinalizeInterface $paymentAdapter
40
    ): HeidelpayResponseTransfer {
41
        $finalizeResponseTransfer = $paymentAdapter->finalize($finalizeRequestTransfer);
42
        $this->logTransaction($finalizeRequestTransfer, $finalizeResponseTransfer);
43
44
        return $finalizeResponseTransfer;
45
    }
46
47
    /**
48
     * @param \Generated\Shared\Transfer\HeidelpayRequestTransfer $finalizeRequestTransfer
49
     * @param \Generated\Shared\Transfer\HeidelpayResponseTransfer $finalizeResponseTransfer
50
     *
51
     * @return void
52
     */
53
    protected function logTransaction(
54
        HeidelpayRequestTransfer $finalizeRequestTransfer,
55
        HeidelpayResponseTransfer $finalizeResponseTransfer
56
    ): void {
57
        $this->transactionLogger->logTransaction(
58
            HeidelpayConfig::TRANSACTION_TYPE_FINALIZE,
59
            $finalizeRequestTransfer,
60
            $finalizeResponseTransfer
61
        );
62
    }
63
}
64