Passed
Branch feature/ECO-573-per-item-proce... (fe5bf4)
by Andrey
04:56
created

IpnPaymentRefundCompletedHandler   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 50
rs 10
c 0
b 0
f 0
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getOmsStatusName() 0 3 1
A handle() 0 11 2
A __construct() 0 10 1
1
<?php
2
3
/**
4
 * Apache OSL-2
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerEco\Zed\Amazonpay\Business\Payment\Handler\Ipn;
9
10
use Spryker\Shared\Kernel\Transfer\AbstractTransfer;
11
use SprykerEco\Shared\Amazonpay\AmazonpayConstants;
12
use SprykerEco\Zed\Amazonpay\Business\Order\RefundOrderInterface;
13
use SprykerEco\Zed\Amazonpay\Business\Payment\Handler\Ipn\Logger\IpnRequestLoggerInterface;
14
use SprykerEco\Zed\Amazonpay\Dependency\Facade\AmazonpayToOmsInterface;
15
use SprykerEco\Zed\Amazonpay\Persistence\AmazonpayQueryContainerInterface;
16
17
class IpnPaymentRefundCompletedHandler extends IpnAbstractPaymentRefundHandler
18
{
19
20
    /**
21
     * @var \SprykerEco\Zed\Amazonpay\Business\Order\RefundOrderInterface
22
     */
23
    protected $refundOrderModel;
24
25
    /**
26
     * @param \SprykerEco\Zed\Amazonpay\Dependency\Facade\AmazonpayToOmsInterface $omsFacade
27
     * @param \SprykerEco\Zed\Amazonpay\Persistence\AmazonpayQueryContainerInterface $amazonpayQueryContainer
28
     * @param \SprykerEco\Zed\Amazonpay\Business\Payment\Handler\Ipn\Logger\IpnRequestLoggerInterface $ipnRequestLogger
29
     * @param \SprykerEco\Zed\Amazonpay\Business\Order\RefundOrderInterface $refundOrderModel
30
     */
31
    public function __construct(
32
        AmazonpayToOmsInterface $omsFacade,
33
        AmazonpayQueryContainerInterface $amazonpayQueryContainer,
34
        IpnRequestLoggerInterface $ipnRequestLogger,
35
        RefundOrderInterface $refundOrderModel
36
    ) {
37
38
        parent::__construct($omsFacade, $amazonpayQueryContainer, $ipnRequestLogger);
39
40
        $this->refundOrderModel = $refundOrderModel;
41
    }
42
43
    /**
44
     * @return string
45
     */
46
    protected function getOmsStatusName()
47
    {
48
        return AmazonpayConstants::OMS_STATUS_REFUND_COMPLETED;
49
    }
50
51
    /**
52
     * @param \Spryker\Shared\Kernel\Transfer\AbstractTransfer|\Generated\Shared\Transfer\AmazonpayCallTransfer $amazonpayIpnRequestTransfer
53
     *
54
     * @return void
55
     */
56
    public function handle(AbstractTransfer $amazonpayIpnRequestTransfer)
57
    {
58
        parent::handle($amazonpayIpnRequestTransfer);
59
60
        $paymentEntity = $this->retrievePaymentEntity($amazonpayIpnRequestTransfer);
61
62
        if ($paymentEntity === null) {
63
            return;
64
        }
65
66
        $this->refundOrderModel->refundPayment($paymentEntity);
67
    }
68
69
}
70