Passed
Push — master ( fce0f0...c759e6 )
by Michaël
04:13 queued 13s
created

ApiException::fromBadResponseException()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 15
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 15
ccs 0
cts 12
cp 0
rs 9.4285
cc 3
eloc 8
nc 3
nop 1
crap 12
1
<?php
2
3
namespace TwitchAlerts\Exception;
4
5
use GuzzleHttp\Exception\BadResponseException;
6
use Psr\Http\Message\ResponseInterface;
7
8
/**
9
 * Class ApiException
10
 *
11
 * @package TwitchAlerts\Exception
12
 */
13
class ApiException extends \Exception
14
{
15
    /**
16
     * @param BadResponseException $e
17
     *
18
     * @return ApiException
19
     */
20
    public static function fromBadResponseException(BadResponseException $e)
21
    {
22
        $message = 'An error has occurred during the API call';
23
24
        if ($e->getResponse() instanceof ResponseInterface) {
25
            $body = (string) $e->getResponse()->getBody();
26
            $json = json_decode($body, true);
27
28
            if (isset($json['message'])) {
29
                $message = $json['message'];
30
            }
31
        }
32
33
        return new self($message);
34
    }
35
}
36