Completed
Pull Request — master (#14)
by Aleksey
20:12
created

RiskCheckResponseConverter::convert()   B

Complexity

Conditions 2
Paths 2

Size

Total Lines 25
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 25
rs 8.8571
cc 2
eloc 14
nc 2
nop 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\ArvatoRss\Business\Api\Converter;
9
10
use Generated\Shared\Transfer\ArvatoRssAddressValidationResponseTransfer;
11
use Generated\Shared\Transfer\ArvatoRssRiskCheckResponseTransfer;
12
use stdClass;
13
14
class RiskCheckResponseConverter implements RiskCheckResponseConverterInterface
15
{
16
    /**
17
     * @param \stdClass $response
18
     *
19
     * @return \Generated\Shared\Transfer\ArvatoRssRiskCheckResponseTransfer
20
     */
21
    public function convert(stdClass $response)
22
    {
23
        $responseTransfer = new ArvatoRssRiskCheckResponseTransfer();
24
25
        $responseTransfer->setResult($response->Decision->Result);
26
        $responseTransfer->setResultCode($response->Decision->ResultCode);
27
        $responseTransfer->setActionCode($response->Decision->ActionCode);
28
        $responseTransfer->setResultText($response->Decision->ResultText);
29
30
        if (isset($response->Details)) {
31
            $responseTransfer->setBillingAddressValidation(
32
                $this->convertAddressValidationResponse(
33
                    $response->Details->BillingCustomerResult->ServiceResults->AddressValidationResponse
34
                )
35
            );
36
37
            $responseTransfer->setDeliveryAddressValidation(
38
                $this->convertAddressValidationResponse(
39
                    $response->Details->DeliveryCustomerResult->ServiceResults->AddressValidationResponse
40
                )
41
            );
42
        }
43
44
        return $responseTransfer;
45
    }
46
47
    /**
48
     * @param \stdClass $response
49
     *
50
     * @return \Generated\Shared\Transfer\ArvatoRssAddressValidationResponseTransfer
51
     */
52
    protected function convertAddressValidationResponse(stdClass $response)
53
    {
54
        $addressValidationResponse = new ArvatoRssAddressValidationResponseTransfer();
55
56
        $addressValidationResponse->setReturnCode($response->ReturnCode);
57
        $addressValidationResponse->setStreet($response->Street);
58
        $addressValidationResponse->setStreetNumber($response->StreetNumber);
59
        $addressValidationResponse->setZipCode($response->ZipCode);
60
        $addressValidationResponse->setCity($response->City);
61
        $addressValidationResponse->setCountry($response->Country);
62
63
        return $addressValidationResponse;
64
    }
65
}
66