hydrateRiskInformation()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 14
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 7
dl 0
loc 14
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 1
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\Heidelpay\Business\Payment\Request;
9
10
use Generated\Shared\Transfer\HeidelpayAsyncTransfer;
11
use Generated\Shared\Transfer\HeidelpayRequestTransfer;
12
use Generated\Shared\Transfer\OrderListTransfer;
13
use SprykerEco\Zed\Heidelpay\Business\Mapper\QuoteToHeidelpayRequestInterface;
14
use SprykerEco\Zed\Heidelpay\Dependency\Facade\HeidelpayToCurrencyFacadeInterface;
15
use SprykerEco\Zed\Heidelpay\Dependency\Facade\HeidelpayToSalesFacadeInterface;
16
use SprykerEco\Zed\Heidelpay\HeidelpayConfig;
17
18
class EasyCreditAdapterRequestFromQuoteBuilder extends AdapterRequestFromQuoteBuilder
19
{
20
    /**
21
     * @var \SprykerEco\Zed\Heidelpay\Dependency\Facade\HeidelpayToSalesFacadeInterface
22
     */
23
    protected $salesFacade;
24
25
    /**
26
     * @param \SprykerEco\Zed\Heidelpay\Business\Mapper\QuoteToHeidelpayRequestInterface $quoteToHeidelpayMapper
27
     * @param \SprykerEco\Zed\Heidelpay\Dependency\Facade\HeidelpayToCurrencyFacadeInterface $currencyFacade
28
     * @param \SprykerEco\Zed\Heidelpay\HeidelpayConfig $config
29
     * @param \SprykerEco\Zed\Heidelpay\Dependency\Facade\HeidelpayToSalesFacadeInterface $salesFacade
30
     */
31
    public function __construct(
32
        QuoteToHeidelpayRequestInterface $quoteToHeidelpayMapper,
33
        HeidelpayToCurrencyFacadeInterface $currencyFacade,
34
        HeidelpayConfig $config,
35
        HeidelpayToSalesFacadeInterface $salesFacade
36
    ) {
37
        parent::__construct($quoteToHeidelpayMapper, $currencyFacade, $config);
38
        $this->salesFacade = $salesFacade;
39
    }
40
41
    /**
42
     * @param \Generated\Shared\Transfer\HeidelpayRequestTransfer $heidelpayRequestTransfer
43
     *
44
     * @return \Generated\Shared\Transfer\HeidelpayRequestTransfer
45
     */
46
    protected function hydrateAsyncParameters(HeidelpayRequestTransfer $heidelpayRequestTransfer): HeidelpayRequestTransfer
47
    {
48
        $asyncTransfer = (new HeidelpayAsyncTransfer())
49
            ->setLanguageCode($this->config->getAsyncLanguageCode())
50
            ->setResponseUrl($this->config->getEasyCreditPaymentResponseUrl());
51
52
        $heidelpayRequestTransfer->setAsync($asyncTransfer);
53
54
        return $heidelpayRequestTransfer;
55
    }
56
57
    /**
58
     * @param \Generated\Shared\Transfer\HeidelpayRequestTransfer $requestTransfer
59
     *
60
     * @return \Generated\Shared\Transfer\HeidelpayRequestTransfer
61
     */
62
    protected function hydrateRequestData(HeidelpayRequestTransfer $requestTransfer): HeidelpayRequestTransfer
63
    {
64
        $requestTransfer = $this->hydrateAuthenticationInfo($requestTransfer);
65
        $requestTransfer = $this->hydrateApplicationSecret($requestTransfer);
66
        $requestTransfer = $this->hydrateAsyncParameters($requestTransfer);
67
        $requestTransfer = $this->hydrateCurrency($requestTransfer);
68
        $requestTransfer = $this->hydrateRiskInformation($requestTransfer);
69
70
        return $requestTransfer;
71
    }
72
73
    /**
74
     * @param \Generated\Shared\Transfer\HeidelpayRequestTransfer $heidelpayRequestTransfer
75
     *
76
     * @return \Generated\Shared\Transfer\HeidelpayRequestTransfer
77
     */
78
    protected function hydrateRiskInformation(HeidelpayRequestTransfer $heidelpayRequestTransfer): HeidelpayRequestTransfer
79
    {
80
        if ($heidelpayRequestTransfer->getRiskInformation()->getIsCustomerGuest()) {
81
            return $heidelpayRequestTransfer;
82
        }
83
84
        $orderListTransfer = $this->salesFacade->getCustomerOrders(
85
            new OrderListTransfer(),
86
            $heidelpayRequestTransfer->getRiskInformation()->getCustomerId()
87
        );
88
89
        $heidelpayRequestTransfer->getRiskInformation()->setCustomerOrdersCount($orderListTransfer->getOrders()->count());
90
91
        return $heidelpayRequestTransfer;
92
    }
93
}
94