Passed
Pull Request — master (#1)
by Serhii
10:49 queued 03:42
created

TransactionStatus   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 107
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 30
dl 0
loc 107
rs 10
c 0
b 0
f 0
wmc 8

7 Methods

Rating   Name   Duplication   Size   Complexity  
A isPaymentConfirmed() 0 8 1
A isPaymentRequestSuccess() 0 9 2
A isCancellationConfirmed() 0 7 1
A loadOrderPayment() 0 7 1
A isDeliveryConfirmed() 0 7 1
A isRefundApproved() 0 7 1
A __construct() 0 4 1
1
<?php
2
3
/**
4
 * MIT License
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerEco\Zed\Ratepay\Business\Status;
9
10
use Generated\Shared\Transfer\OrderTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfer\OrderTransfer 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
use SprykerEco\Zed\Ratepay\Business\Api\Constants as ApiConstants;
12
use SprykerEco\Zed\Ratepay\Persistence\RatepayQueryContainerInterface;
13
14
class TransactionStatus implements TransactionStatusInterface
15
{
16
    /**
17
     * @var \SprykerEco\Zed\Ratepay\Persistence\RatepayQueryContainerInterface $queryContainer
18
     */
19
    protected $queryContainer;
20
21
    /**
22
     * @param \SprykerEco\Zed\Ratepay\Persistence\RatepayQueryContainerInterface $queryContainer
23
     */
24
    public function __construct(
25
        RatepayQueryContainerInterface $queryContainer
26
    ) {
27
        $this->queryContainer = $queryContainer;
28
    }
29
30
    /**
31
     * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
32
     *
33
     * @return \Orm\Zed\Ratepay\Persistence\SpyPaymentRatepay
0 ignored issues
show
Bug introduced by
The type Orm\Zed\Ratepay\Persistence\SpyPaymentRatepay 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...
34
     */
35
    protected function loadOrderPayment(OrderTransfer $orderTransfer)
36
    {
37
        return $this->queryContainer
38
            ->queryPayments()
39
            ->findByFkSalesOrder(
40
                $orderTransfer->requireIdSalesOrder()->getIdSalesOrder()
41
            )->getFirst();
42
    }
43
44
    /**
45
     * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
46
     *
47
     * @return bool
48
     */
49
    public function isPaymentRequestSuccess(OrderTransfer $orderTransfer)
50
    {
51
        $paymentLog = $this->queryContainer
52
            ->getLastLogRecordBySalesOrderIdAndMessage($orderTransfer->requireIdSalesOrder()->getIdSalesOrder(), ApiConstants::REQUEST_MODEL_PAYMENT_REQUEST);
53
        if (!$paymentLog) {
0 ignored issues
show
introduced by
$paymentLog is of type Orm\Zed\Ratepay\Persistence\SpyPaymentRatepayLog, thus it always evaluated to true.
Loading history...
54
            return false;
55
        }
56
57
        return ($paymentLog->getResponseResultCode() == ApiConstants::REQUEST_CODE_SUCCESS_MATRIX[ApiConstants::REQUEST_MODEL_PAYMENT_REQUEST]);
58
    }
59
60
    /**
61
     * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
62
     *
63
     * @return bool
64
     */
65
    public function isPaymentConfirmed(OrderTransfer $orderTransfer)
66
    {
67
        $payment = $this->loadOrderPayment($orderTransfer);
68
        return in_array(
69
            $payment->getResultCode(),
70
            [
71
                ApiConstants::REQUEST_CODE_SUCCESS_MATRIX[ApiConstants::REQUEST_MODEL_PAYMENT_CONFIRM],
72
                ApiConstants::REQUEST_CODE_SUCCESS_MATRIX[ApiConstants::REQUEST_MODEL_DELIVER_CONFIRM],
73
            ]
74
        );
75
    }
76
77
    /**
78
     * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
79
     *
80
     * @return bool
81
     */
82
    public function isDeliveryConfirmed(OrderTransfer $orderTransfer)
83
    {
84
        $payment = $this->loadOrderPayment($orderTransfer);
85
        return in_array(
86
            $payment->getResultCode(),
87
            [
88
                ApiConstants::REQUEST_CODE_SUCCESS_MATRIX[ApiConstants::REQUEST_MODEL_DELIVER_CONFIRM],
89
            ]
90
        );
91
    }
92
93
    /**
94
     * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
95
     *
96
     * @return bool
97
     */
98
    public function isCancellationConfirmed(OrderTransfer $orderTransfer)
99
    {
100
        $payment = $this->loadOrderPayment($orderTransfer);
101
        return in_array(
102
            $payment->getResultCode(),
103
            [
104
                ApiConstants::REQUEST_CODE_SUCCESS_MATRIX[ApiConstants::REQUEST_MODEL_PAYMENT_CHANGE],
105
            ]
106
        );
107
    }
108
109
    /**
110
     * @param \Generated\Shared\Transfer\OrderTransfer $orderTransfer
111
     *
112
     * @return bool
113
     */
114
    public function isRefundApproved(OrderTransfer $orderTransfer)
115
    {
116
        $payment = $this->loadOrderPayment($orderTransfer);
117
        return in_array(
118
            $payment->getResultCode(),
119
            [
120
                ApiConstants::REQUEST_CODE_SUCCESS_MATRIX[ApiConstants::REQUEST_MODEL_PAYMENT_CHANGE],
121
            ]
122
        );
123
    }
124
}
125