ExternalResponseTransaction::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

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