Completed
Push — master ( 4c1e33...23763c )
by Mariano
02:50
created

ErrorResponse   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 4
c 2
b 0
f 0
lcom 1
cbo 1
dl 0
loc 33
ccs 12
cts 12
cp 1
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A parse() 0 6 1
A getExceptionClass() 0 12 3
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 2
    public function parse()
12
    {
13 2
        $error = (string) $this->data;
14 2
        $exceptionClass = $this->getExceptionClass($error);
15 2
        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 2
    private function getExceptionClass($error)
25
    {
26
        $errors = [
27
            'PAUSED' => QueuePausedResponseException::class
28 2
        ];
29 2
        $exceptionClass = ResponseException::class;
30 2
        list($errorCode) = explode(" ", $error);
31 2
        if (!empty($errorCode) && isset($errors[$errorCode])) {
32 1
            $exceptionClass = $errors[$errorCode];
33 1
        }
34 2
        return $exceptionClass;
35
    }
36
}