UpdateOrderCaptureStatusTransaction   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
eloc 13
c 1
b 1
f 0
dl 0
loc 43
rs 10
wmc 6

3 Methods

Rating   Name   Duplication   Size   Complexity  
A execute() 0 11 2
A isAllowed() 0 4 2
A updatePayment() 0 9 2
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\Transaction;
9
10
use Generated\Shared\Transfer\AmazonpayCallTransfer;
11
12
class UpdateOrderCaptureStatusTransaction extends AbstractAmazonpayTransaction
13
{
14
    /**
15
     * @param \Generated\Shared\Transfer\AmazonpayCallTransfer $amazonPayCallTransfer
16
     *
17
     * @return \Generated\Shared\Transfer\AmazonpayCallTransfer
18
     */
19
    public function execute(AmazonpayCallTransfer $amazonPayCallTransfer)
20
    {
21
        if (!$this->isAllowed($amazonPayCallTransfer)) {
22
            return $amazonPayCallTransfer;
23
        }
24
25
        $amazonPayCallTransfer = parent::execute($amazonPayCallTransfer);
26
27
        $this->updatePayment();
28
29
        return $amazonPayCallTransfer;
30
    }
31
32
    /**
33
     * @param \Generated\Shared\Transfer\AmazonpayCallTransfer $amazonPayCallTransfer
34
     *
35
     * @return bool
36
     */
37
    protected function isAllowed(AmazonpayCallTransfer $amazonPayCallTransfer)
38
    {
39
        return $amazonPayCallTransfer->getAmazonpayPayment()->getCaptureDetails() !== null
40
            && $amazonPayCallTransfer->getAmazonpayPayment()->getCaptureDetails()->getAmazonCaptureId() !== null;
41
    }
42
43
    /**
44
     * @return void
45
     */
46
    protected function updatePayment()
47
    {
48
        if (!$this->apiResponse->getResponseHeader()->getIsSuccess()) {
49
            return;
50
        }
51
52
        $newStatus = $this->apiResponse->getCaptureDetails()->getCaptureStatus()->getState();
53
        $this->paymentEntity->setStatus($newStatus);
54
        $this->paymentEntity->save();
55
    }
56
}
57