ErrorResponse::getExceptionClass()   A
last analyzed

Complexity

Conditions 3
Paths 2

Size

Total Lines 12
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 12
ccs 0
cts 12
cp 0
rs 9.4285
c 1
b 0
f 0
cc 3
eloc 8
nc 2
nop 1
crap 12
1
<?php
2
namespace Disque\Connection\Response;
3
4
class ErrorResponse extends BaseResponse
5
{
6
    /**
7
     * Parse response
8
     *
9
     * @return ResponseException Response
10
     */
11
    public function parse()
12
    {
13
        $error = (string) $this->data;
14
        $exceptionClass = $this->getExceptionClass($error);
15
        return new $exceptionClass($error);
16
    }
17
18
    /**
19
     * Creates ResponseException based off error
20
     *
21
     * @param string $error Error
22
     * @return string Class Name
23
     */
24
    private function getExceptionClass($error)
25
    {
26
        $errors = [
27
            'PAUSED' => QueuePausedResponseException::class
28
        ];
29
        $exceptionClass = ResponseException::class;
30
        list($errorCode) = explode(" ", $error);
31
        if (!empty($errorCode) && isset($errors[$errorCode])) {
32
            $exceptionClass = $errors[$errorCode];
33
        }
34
        return $exceptionClass;
35
    }
36
}