Generic::__construct()   B
last analyzed

Complexity

Conditions 7
Paths 48

Size

Total Lines 20
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 12
CRAP Score 7.0222

Importance

Changes 0
Metric Value
eloc 14
c 0
b 0
f 0
dl 0
loc 20
ccs 12
cts 13
cp 0.9231
rs 8.8333
cc 7
nc 48
nop 3
crap 7.0222
1
<?php
2
namespace Akkroo\Error;
3
4
use Exception;
5
6
class Generic extends Exception
7
{
8
    protected $code = 400;
9
    protected $message = 'Bad Request';
10
    protected $requestID = null;
11
12 15
    public function __construct($message = '', $code = 0, array $body = [])
13
    {
14 15
        if (empty($message)) {
15 5
            $message = $this->message;
16
        }
17 15
        if (empty($code)) {
18 6
            $code = $this->code;
19
        }
20 15
        parent::__construct($message, $code);
21 15
        if (!empty($body['data']['error'])) {
22 6
            $message = isset($body['data']['error']['message'])
23
                ? $body['data']['error']['message']
24 15
                : $body['data']['error'];
25
            $this->message .= ' (' . $message . ')';
26
        }
27 15
        if (!empty($body['data']['error_description'])) {
28 5
            $this->message .= ': ' . $body['data']['error_description'];
29
        }
30 15
        if (!empty($body['requestID'])) {
31
            $this->requestID = $body['requestID'];
32 3
        }
33
    }
34 3
35
    public function getRequestID()
36
    {
37
        return $this->requestID;
38
    }
39
}
40