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

PaymentAmazonpayConverter::getAuthStatusTransfer()   B

Complexity

Conditions 2
Paths 1

Size

Total Lines 26
Code Lines 13

Duplication

Lines 26
Ratio 100 %

Importance

Changes 0
Metric Value
cc 2
eloc 13
nc 1
nop 1
dl 26
loc 26
rs 8.8571
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;
9
10
use Generated\Shared\Transfer\AmazonpayAuthorizationDetailsTransfer;
11
use Generated\Shared\Transfer\AmazonpayCaptureDetailsTransfer;
12
use Generated\Shared\Transfer\AmazonpayPaymentTransfer;
13
use Generated\Shared\Transfer\AmazonpayRefundDetailsTransfer;
14
use Generated\Shared\Transfer\AmazonpayResponseHeaderTransfer;
15
use Generated\Shared\Transfer\AmazonpayStatusTransfer;
16
use Orm\Zed\Amazonpay\Persistence\SpyPaymentAmazonpay;
1 ignored issue
show
Bug introduced by
The type Orm\Zed\Amazonpay\Persistence\SpyPaymentAmazonpay 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...
17
use SprykerEco\Shared\Amazonpay\AmazonpayConstants;
18
19 View Code Duplication
class PaymentAmazonpayConverter implements PaymentAmazonpayConverterInterface
0 ignored issues
show
Duplication introduced by
This class seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
20
{
21
22
    /**
23
     * @param \Orm\Zed\Amazonpay\Persistence\SpyPaymentAmazonpay $entity
24
     *
25
     * @return \Generated\Shared\Transfer\AmazonpayPaymentTransfer
26
     */
27
    public function mapPaymentEntity(SpyPaymentAmazonpay $entity)
28
    {
29
        $responseHeader = new AmazonpayResponseHeaderTransfer();
30
        $responseHeader->setIsSuccess(true);
31
32
        $paymentTransfer = new AmazonpayPaymentTransfer();
33
        $paymentTransfer->fromArray($entity->toArray(), true);
34
        $paymentTransfer->setResponseHeader($responseHeader);
35
        $paymentTransfer->setOrderReferenceStatus(new AmazonpayStatusTransfer());
36
        $paymentTransfer->setAuthorizationDetails($this->getAuthorizationDetailsTransfer($entity));
37
        $paymentTransfer->setCaptureDetails($this->getCaptureDetailsTransfer($entity));
38
        $paymentTransfer->setRefundDetails($this->getAmazonpayRefundDetailsTransfer($entity));
39
40
        return $paymentTransfer;
41
    }
42
43
    /**
44
     * @param \Orm\Zed\Amazonpay\Persistence\SpyPaymentAmazonpay $entity
45
     *
46
     * @return \Generated\Shared\Transfer\AmazonpayAuthorizationDetailsTransfer
47
     */
48
    protected function getAuthorizationDetailsTransfer(SpyPaymentAmazonpay $entity)
49
    {
50
        $authDetailsTransfer = new AmazonpayAuthorizationDetailsTransfer();
51
        $authDetailsTransfer->fromArray($entity->toArray(), true);
52
        $authDetailsTransfer->setAuthorizationStatus(
53
            $this->getAuthStatusTransfer($entity->getStatus())
54
        );
55
56
        return $authDetailsTransfer;
57
    }
58
59
    /**
60
     * @param \Orm\Zed\Amazonpay\Persistence\SpyPaymentAmazonpay $entity
61
     *
62
     * @return \Generated\Shared\Transfer\AmazonpayRefundDetailsTransfer
63
     */
64
    protected function getAmazonpayRefundDetailsTransfer(SpyPaymentAmazonpay $entity)
65
    {
66
        $refundDetailsTransfer = new AmazonpayRefundDetailsTransfer();
67
        $refundDetailsTransfer->fromArray($entity->toArray(), true);
68
        $refundDetailsTransfer->setRefundStatus(
69
            $this->getRefundStatusTransfer($entity->getStatus())
70
        );
71
72
        return $refundDetailsTransfer;
73
    }
74
75
    /**
76
     * @param \Orm\Zed\Amazonpay\Persistence\SpyPaymentAmazonpay $entity
77
     *
78
     * @return \Generated\Shared\Transfer\AmazonpayCaptureDetailsTransfer
79
     */
80
    protected function getCaptureDetailsTransfer(SpyPaymentAmazonpay $entity)
81
    {
82
        $captureDetailsTransfer = new AmazonpayCaptureDetailsTransfer();
83
        $captureDetailsTransfer->fromArray($entity->toArray(), true);
84
        $captureDetailsTransfer->setCaptureStatus(
85
            $this->getCaptureStatusTransfer($entity->getStatus())
86
        );
87
88
        return $captureDetailsTransfer;
89
    }
90
91
    /**
92
     * @param string $statusName
93
     *
94
     * @return \Generated\Shared\Transfer\AmazonpayStatusTransfer
95
     */
96
    protected function getAuthStatusTransfer($statusName)
97
    {
98
        $amazonpayStatusTransfer = new AmazonpayStatusTransfer();
99
100
        $amazonpayStatusTransfer->setIsPending(
101
            $statusName === AmazonpayConstants::OMS_STATUS_AUTH_PENDING
102
        );
103
104
        $amazonpayStatusTransfer->setIsDeclined(
105
            $statusName === AmazonpayConstants::OMS_STATUS_AUTH_DECLINED ||
106
            $statusName === AmazonpayConstants::OMS_STATUS_AUTH_SUSPENDED
107
        );
108
109
        $amazonpayStatusTransfer->setIsSuspended(
110
            $statusName === AmazonpayConstants::OMS_STATUS_AUTH_SUSPENDED
111
        );
112
113
        $amazonpayStatusTransfer->setIsTransactionTimedOut(
114
            $statusName === AmazonpayConstants::OMS_STATUS_AUTH_TRANSACTION_TIMED_OUT
115
        );
116
117
        $amazonpayStatusTransfer->setIsOpen(
118
            $statusName === AmazonpayConstants::OMS_STATUS_AUTH_OPEN
119
        );
120
121
        return $amazonpayStatusTransfer;
122
    }
123
124
    /**
125
     * @param string $statusName
126
     *
127
     * @return \Generated\Shared\Transfer\AmazonpayStatusTransfer
128
     */
129
    protected function getCaptureStatusTransfer($statusName)
130
    {
131
        $amazonpayStatusTransfer = new AmazonpayStatusTransfer();
132
133
        $amazonpayStatusTransfer->setIsPending(
134
            $statusName === AmazonpayConstants::OMS_STATUS_CAPTURE_PENDING
135
        );
136
137
        $amazonpayStatusTransfer->setIsDeclined(
138
            $statusName === AmazonpayConstants::OMS_STATUS_CAPTURE_DECLINED
139
        );
140
141
        $amazonpayStatusTransfer->setIsCompleted(
142
            $statusName === AmazonpayConstants::OMS_STATUS_CAPTURE_COMPLETED
143
        );
144
145
        $amazonpayStatusTransfer->setIsClosed(
146
            $statusName === AmazonpayConstants::OMS_STATUS_CAPTURE_CLOSED
147
        );
148
149
        return $amazonpayStatusTransfer;
150
    }
151
152
    /**
153
     * @param string $statusName
154
     *
155
     * @return \Generated\Shared\Transfer\AmazonpayStatusTransfer
156
     */
157
    protected function getRefundStatusTransfer($statusName)
158
    {
159
        $amazonpayStatusTransfer = new AmazonpayStatusTransfer();
160
161
        $amazonpayStatusTransfer->setIsPending(
162
            $statusName === AmazonpayConstants::OMS_STATUS_REFUND_PENDING
163
        );
164
165
        $amazonpayStatusTransfer->setIsDeclined(
166
            $statusName === AmazonpayConstants::OMS_STATUS_REFUND_DECLINED
167
        );
168
169
        $amazonpayStatusTransfer->setIsCompleted(
170
            $statusName === AmazonpayConstants::OMS_STATUS_CAPTURE_COMPLETED
171
        );
172
173
        return $amazonpayStatusTransfer;
174
    }
175
176
}
177