Response   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 31
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 7
eloc 11
c 1
b 0
f 0
dl 0
loc 31
ccs 11
cts 11
cp 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B process() 0 24 7
1
<?php
2
3
namespace kalanis\google_maps\Remote;
4
5
6
use Psr\Http\Message\ResponseInterface;
7
8
9
/**
10
 * Process response to usable format
11
 */
12
class Response
13
{
14
    /**
15
     * @param ResponseInterface $response
16
     * @param bool $wantInnerResult
17
     * @return mixed
18
     */
19 11
    public function process(ResponseInterface $response, bool $wantInnerResult): mixed
20
    {
21 11
        $message = $response->getBody()->getContents();
22 11
        $result = @json_decode($message, true);
23
24
        // Error Handler
25 11
        if (empty($result) && !empty($message)) {
26
            // Error message directly in content
27 3
            return $message;
28
29 8
        } elseif (200 !== $response->getStatusCode()) {
30
            // status code passed something
31 3
            return $result;
32
33
        }
34
35 5
        $result = (array) $result;
36 5
        if (isset($result['error_message'])) {
37
            // Error message Checker (200 situation from Google Maps API)
38 1
            return $result;
39
        }
40
41
        // `results` parsing from Google Maps API, while pass parsing on error
42 4
        return isset($result['results']) && $wantInnerResult ? $result['results'] : $result;
43
    }
44
}
45