Passed
Push — master ( a2100c...af4f13 )
by Andrey
06:37
created

HandleDeclinedOrderTransaction::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 2
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
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\QuoteTransfer;
1 ignored issue
show
Bug introduced by
The type Generated\Shared\Transfer\QuoteTransfer was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
11
12
class HandleDeclinedOrderTransaction extends AbstractQuoteTransaction
13
{
14
15
    const ORDER_REFERENCE_STATUS_OPEN = 'Open';
16
17
    /**
18
     * @var \SprykerEco\Zed\Amazonpay\Business\Payment\Handler\Transaction\QuoteTransactionInterface
19
     */
20
    protected $getOrderReferenceDetailsTransaction;
21
22
    /**
23
     * @var \SprykerEco\Zed\Amazonpay\Business\Payment\Handler\Transaction\QuoteTransactionInterface
24
     */
25
    protected $cancelOrderTransaction;
26
27
    /**
28
     * @param \SprykerEco\Zed\Amazonpay\Business\Payment\Handler\Transaction\GetOrderReferenceDetailsTransaction $getOrderReferenceDetailsTransaction
29
     * @param \SprykerEco\Zed\Amazonpay\Business\Payment\Handler\Transaction\CancelPreOrderTransaction $cancelOrderTransaction
30
     */
31
    public function __construct(
32
        GetOrderReferenceDetailsTransaction $getOrderReferenceDetailsTransaction,
33
        CancelPreOrderTransaction $cancelOrderTransaction
34
    ) {
35
        $this->getOrderReferenceDetailsTransaction = $getOrderReferenceDetailsTransaction;
36
        $this->cancelOrderTransaction = $cancelOrderTransaction;
37
    }
38
39
    /**
40
     * @param \Generated\Shared\Transfer\QuoteTransfer $quoteTransfer
41
     *
42
     * @return \Generated\Shared\Transfer\QuoteTransfer
43
     */
44
    public function execute(QuoteTransfer $quoteTransfer)
45
    {
46
        if (!$quoteTransfer
47
                ->getAmazonpayPayment()
48
                ->getAuthorizationDetails()
49
                ->getAuthorizationStatus()
50
                ->getIsDeclined()
51
        ) {
52
            return $quoteTransfer;
53
        }
54
55
        if ($quoteTransfer->getAmazonpayPayment()
56
                ->getAuthorizationDetails()
57
                ->getAuthorizationStatus()
58
                ->getIsPaymentMethodInvalid()
59
        ) {
60
            return $quoteTransfer;
61
        }
62
63
        $checkOrderStatus = $this->getOrderReferenceDetailsTransaction->execute($quoteTransfer);
64
65
        if ($checkOrderStatus->getAmazonpayPayment()
66
                ->getOrderReferenceStatus()
67
                ->getState()
68
                ->getIsOpen()
69
        ) {
70
            $this->cancelOrderTransaction->execute($quoteTransfer);
71
        }
72
73
        return $quoteTransfer;
74
    }
75
76
}
77