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

getAuthStatusTransfer()   B

Complexity

Conditions 2
Paths 1

Size

Total Lines 30
Code Lines 15

Duplication

Lines 30
Ratio 100 %

Importance

Changes 0
Metric Value
cc 2
eloc 15
nc 1
nop 1
dl 30
loc 30
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\Converter;
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 AmazonpayEntityToTransferConverter implements AmazonpayEntityToTransferConverterInterface
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 mapEntityToTransfer(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
        $amazonpayStatusTransfer->setIsClosed(
122
            $statusName === AmazonpayConstants::OMS_STATUS_AUTH_CLOSED
123
        );
124
125
        return $amazonpayStatusTransfer;
126
    }
127
128
    /**
129
     * @param string $statusName
130
     *
131
     * @return \Generated\Shared\Transfer\AmazonpayStatusTransfer
132
     */
133
    protected function getCaptureStatusTransfer($statusName)
134
    {
135
        $amazonpayStatusTransfer = new AmazonpayStatusTransfer();
136
137
        $amazonpayStatusTransfer->setIsPending(
138
            $statusName === AmazonpayConstants::OMS_STATUS_CAPTURE_PENDING
139
        );
140
141
        $amazonpayStatusTransfer->setIsDeclined(
142
            $statusName === AmazonpayConstants::OMS_STATUS_CAPTURE_DECLINED
143
        );
144
145
        $amazonpayStatusTransfer->setIsCompleted(
146
            $statusName === AmazonpayConstants::OMS_STATUS_CAPTURE_COMPLETED
147
        );
148
149
        $amazonpayStatusTransfer->setIsClosed(
150
            $statusName === AmazonpayConstants::OMS_STATUS_CAPTURE_CLOSED
151
        );
152
153
        return $amazonpayStatusTransfer;
154
    }
155
156
    /**
157
     * @param string $statusName
158
     *
159
     * @return \Generated\Shared\Transfer\AmazonpayStatusTransfer
160
     */
161
    protected function getRefundStatusTransfer($statusName)
162
    {
163
        $amazonpayStatusTransfer = new AmazonpayStatusTransfer();
164
165
        $amazonpayStatusTransfer->setIsPending(
166
            $statusName === AmazonpayConstants::OMS_STATUS_REFUND_PENDING
167
        );
168
169
        $amazonpayStatusTransfer->setIsDeclined(
170
            $statusName === AmazonpayConstants::OMS_STATUS_REFUND_DECLINED
171
        );
172
173
        $amazonpayStatusTransfer->setIsCompleted(
174
            $statusName === AmazonpayConstants::OMS_STATUS_CAPTURE_COMPLETED
175
        );
176
177
        return $amazonpayStatusTransfer;
178
    }
179
180
}
181