Passed
Push — feature/eco-574/eco-2266-check... ( efd21d )
by Aleksey
08:13
created

TwoStepsAuthorizeRequestBuilder::addOrderNumber()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 2
dl 0
loc 8
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * MIT License
5
 * For full license information, please view the LICENSE file that was distributed with this source code.
6
 */
7
8
namespace SprykerEco\Zed\Afterpay\Business\Payment\Transaction\Authorize\RequestBuilder;
9
10
use Generated\Shared\Transfer\AfterpayAuthorizeRequestTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfe...uthorizeRequestTransfer 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 Generated\Shared\Transfer\AfterpayCallTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfer\AfterpayCallTransfer 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...
12
use Generated\Shared\Transfer\AfterpayRequestOrderTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfe...payRequestOrderTransfer 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...
13
use Generated\Shared\Transfer\AfterpayRequestPaymentTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfe...yRequestPaymentTransfer 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...
14
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...
15
use SprykerEco\Shared\Afterpay\AfterpayConfig;
16
use SprykerEco\Shared\Afterpay\AfterpayConstants;
17
use SprykerEco\Zed\Afterpay\Business\Payment\Mapper\OrderToRequestTransferInterface;
18
19
class TwoStepsAuthorizeRequestBuilder implements AuthorizeRequestBuilderInterface
20
{
21
    /**
22
     * @var array
23
     */
24
    protected static $paymentMethods = [
25
        AfterpayConfig::PAYMENT_METHOD_INVOICE => AfterpayConfig::PAYMENT_TYPE_INVOICE,
26
    ];
27
28
    /**
29
     * @var \SprykerEco\Zed\Afterpay\Business\Payment\Mapper\OrderToRequestTransferInterface
30
     */
31
    private $orderToRequestMapper;
32
33
    /**
34
     * @param \SprykerEco\Zed\Afterpay\Business\Payment\Mapper\OrderToRequestTransferInterface $orderToRequestMapper
35
     */
36
    public function __construct(OrderToRequestTransferInterface $orderToRequestMapper)
37
    {
38
        $this->orderToRequestMapper = $orderToRequestMapper;
39
    }
40
41
    /**
42
     * @param \Generated\Shared\Transfer\AfterpayCallTransfer $orderWithPaymentTransfer
43
     *
44
     * @return \Generated\Shared\Transfer\AfterpayAuthorizeRequestTransfer
45
     */
46
    public function buildAuthorizeRequest(AfterpayCallTransfer $orderWithPaymentTransfer): AfterpayAuthorizeRequestTransfer
47
    {
48
        $authorizeRequestTransfer = $this
49
            ->orderToRequestMapper
50
            ->orderToAuthorizeRequest($orderWithPaymentTransfer);
51
52
        $authorizeRequestTransfer
53
            ->setIdSalesOrder(
54
                $orderWithPaymentTransfer->getIdSalesOrder()
55
            );
56
57
        $this->addCheckoutId($authorizeRequestTransfer, $orderWithPaymentTransfer);
58
59
        return $authorizeRequestTransfer;
60
    }
61
62
    /**
63
     * @param \Generated\Shared\Transfer\AfterpayAuthorizeRequestTransfer $authorizeRequestTransfer
64
     * @param \Generated\Shared\Transfer\OrderTransfer $orderWithPaymentTransfer
65
     *
66
     * @return void
67
     */
68
    protected function addOrderNumber(
69
        AfterpayAuthorizeRequestTransfer $authorizeRequestTransfer,
70
        OrderTransfer $orderWithPaymentTransfer
71
    ): void {
72
        $requestOrderTransfer = new AfterpayRequestOrderTransfer();
73
        $requestOrderTransfer->setNumber($orderWithPaymentTransfer->getOrderReference());
74
75
        $authorizeRequestTransfer->setOrder($requestOrderTransfer);
76
    }
77
78
    /**
79
     * @param \Generated\Shared\Transfer\AfterpayAuthorizeRequestTransfer $authorizeRequestTransfer
80
     * @param \Generated\Shared\Transfer\OrderTransfer $orderWithPaymentTransfer
81
     *
82
     * @return void
83
     */
84
    protected function addCheckoutId(
85
        AfterpayAuthorizeRequestTransfer $authorizeRequestTransfer,
86
        OrderTransfer $orderWithPaymentTransfer
87
    ): void {
88
        $checkoutId = $orderWithPaymentTransfer->getAfterpayPayment()->getIdCheckout();
89
        $authorizeRequestTransfer->setCheckoutId($checkoutId);
90
    }
91
92
    /**
93
     * @param \Generated\Shared\Transfer\AfterpayAuthorizeRequestTransfer $authorizeRequestTransfer
94
     * @param \Generated\Shared\Transfer\OrderTransfer $orderWithPaymentTransfer
95
     *
96
     * @return void
97
     */
98
    protected function addPaymentDetails(
99
        AfterpayAuthorizeRequestTransfer $authorizeRequestTransfer,
100
        OrderTransfer $orderWithPaymentTransfer
101
    ): void {
102
        $paymentMethod = $orderWithPaymentTransfer->getAfterpayPayment()->getPaymentMethod();
103
104
        $requestPaymentTransfer = new AfterpayRequestPaymentTransfer();
105
        $requestPaymentTransfer->setType(static::$paymentMethods[$paymentMethod]);
106
107
        $authorizeRequestTransfer->setPayment($requestPaymentTransfer);
108
    }
109
}
110