Total Complexity | 10 |
Total Lines | 49 |
Duplicated Lines | 0 % |
Coverage | 92.59% |
Changes | 0 |
1 | <?php |
||
11 | final class ApiResponseDataFactory |
||
12 | { |
||
13 | 2 | public function createFromResponse(DataResponse $response): ApiResponseData |
|
14 | { |
||
15 | 2 | if ($response->getStatusCode() !== Status::OK) { |
|
16 | 1 | return $this |
|
17 | 1 | ->createErrorResponse() |
|
18 | 1 | ->setErrorCode($response->getStatusCode()) |
|
19 | 1 | ->setErrorMessage($this->getErrorMessage($response)); |
|
20 | } |
||
21 | |||
22 | 1 | $data = $response->getData(); |
|
23 | |||
24 | 1 | if ($data !== null && !is_array($data)) { |
|
25 | throw new RuntimeException('The response data must be either null or an array'); |
||
26 | } |
||
27 | |||
28 | 1 | return $this |
|
29 | 1 | ->createSuccessResponse() |
|
30 | 1 | ->setData($data); |
|
31 | } |
||
32 | |||
33 | 1 | public function createSuccessResponse(): ApiResponseData |
|
38 | } |
||
39 | |||
40 | 1 | public function createErrorResponse(): ApiResponseData |
|
41 | { |
||
42 | 1 | return $this |
|
43 | 1 | ->createResponse() |
|
44 | 1 | ->setStatus('failed'); |
|
45 | } |
||
46 | |||
47 | 2 | public function createResponse(): ApiResponseData |
|
48 | { |
||
49 | 2 | return new ApiResponseData(); |
|
50 | } |
||
51 | |||
52 | 1 | private function getErrorMessage(DataResponse $response): string |
|
60 | } |
||
61 | } |
||
62 |