Passed
Pull Request — master (#45)
by
unknown
03:36
created

createResponseTransfer()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 22
Code Lines 17

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 17
c 1
b 0
f 0
dl 0
loc 22
rs 9.7
cc 1
nc 1
nop 2
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\Yves\Computop\Converter;
9
10
use Generated\Shared\Transfer\ComputopApiResponseHeaderTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfe...iResponseHeaderTransfer 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\ComputopPayuCeeSingleInitResponseTransfer;
0 ignored issues
show
Bug introduced by
The type Generated\Shared\Transfe...gleInitResponseTransfer 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 Spryker\Shared\Kernel\Transfer\TransferInterface;
13
use SprykerEco\Shared\Computop\ComputopConfig;
14
use SprykerEco\Shared\Computop\Config\ComputopApiConfig;
15
16
class InitPayuCeeSingleConverter extends AbstractInitConverter
17
{
18
    /**
19
     * @param array $decryptedArray
20
     * @param \Generated\Shared\Transfer\ComputopApiResponseHeaderTransfer $header
21
     *
22
     * @return \Generated\Shared\Transfer\ComputopPayuCeeSingleInitResponseTransfer
23
     */
24
    protected function createResponseTransfer(array $decryptedArray, ComputopApiResponseHeaderTransfer $header): TransferInterface
25
    {
26
        $computopPayuCeeSingleInitResponseTransfer = (new ComputopPayuCeeSingleInitResponseTransfer())
27
            ->fromArray($decryptedArray, true)
28
            ->setHeader($this->updateResponseHeader($header));
29
30
        $fieldMap = [
31
            'refNr' => ComputopApiConfig::REF_NR,
32
            'codeExt' => ComputopApiConfig::CODE_EXT,
33
            'errorText' => ComputopApiConfig::ERROR_TEXT,
34
            'userData' => ComputopApiConfig::USER_DATA,
35
            'plain' => ComputopApiConfig::PLAIN,
36
            'custom' => ComputopApiConfig::CUSTOM,
37
            'customerTransactionId' => ComputopApiConfig::TRANSACTION_ID,
38
            'amountAuth' => ComputopApiConfig::AMOUNT_AUTH,
39
            'amountCap' => ComputopApiConfig::AMOUNT_CAP,
40
            'amountCred' => ComputopApiConfig::AMOUNT_CRED,
41
        ];
42
43
        return $computopPayuCeeSingleInitResponseTransfer->fromArray(
44
            $this->getApiResponseValues($decryptedArray, $fieldMap),
45
            true,
46
        );
47
    }
48
49
    /**
50
     * @param \Generated\Shared\Transfer\ComputopApiResponseHeaderTransfer $computopApiResponseHeaderTransfer
51
     *
52
     * @return \Generated\Shared\Transfer\ComputopApiResponseHeaderTransfer
53
     */
54
    protected function updateResponseHeader(ComputopApiResponseHeaderTransfer $computopApiResponseHeaderTransfer): ComputopApiResponseHeaderTransfer
55
    {
56
        if ($computopApiResponseHeaderTransfer->getStatus() === ComputopConfig::AUTHORIZE_REQUEST_STATUS) {
57
            $computopApiResponseHeaderTransfer->setIsSuccess(true);
58
        }
59
60
        return $computopApiResponseHeaderTransfer;
61
    }
62
63
    /**
64
     * @param array<string> $decryptedResponse
65
     * @param array<string> $responseFieldsMap
66
     *
67
     * @return array
68
     */
69
    protected function getApiResponseValues(array $decryptedResponse, array $responseFieldsMap): array
70
    {
71
        $apiResponseValues = [];
72
        foreach ($responseFieldsMap as $transferKey => $responseKey) {
73
            $apiResponseValues[$transferKey] = $this->computopApiService->getResponseValue($decryptedResponse, $responseKey);
74
        }
75
76
        return $apiResponseValues;
77
    }
78
}
79