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