Passed
Push — master ( 793cce...b0cf56 )
by Eugene
07:19
created

Response::isError()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 5
ccs 3
cts 3
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
crap 1
1
<?php
2
3
/**
4
 * This file is part of the tarantool/client package.
5
 *
6
 * (c) Eugene Leonovich <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
declare(strict_types=1);
13
14
namespace Tarantool\Client;
15
16
final class Response
17
{
18
    public const TYPE_ERROR = 0x8000;
19
20
    private $header;
21
    private $body;
22
23 480
    public function __construct(array $header, array $body)
24
    {
25 480
        $this->header = $header;
26 480
        $this->body = $body;
27
    }
28
29 390
    public function isError() : bool
30
    {
31 390
        $code = $this->header[Keys::CODE];
32
33 390
        return $code >= self::TYPE_ERROR;
34
    }
35
36 81
    public function getCode() : int
37
    {
38 81
        return $this->header[Keys::CODE];
39
    }
40
41 411
    public function getSync() : int
42
    {
43 411
        return $this->header[Keys::SYNC];
44
    }
45
46 3
    public function getSchemaId() : int
47
    {
48 3
        return $this->header[Keys::SCHEMA_ID];
49
    }
50
51
    /**
52
     * @return mixed
53
     */
54 395
    public function getBodyField(int $key)
55
    {
56 395
        if (\array_key_exists($key, $this->body)) {
57 395
            return $this->body[$key];
58
        }
59
60
        throw new \OutOfRangeException(\sprintf('The body key 0x%x does not exist', $key));
61
    }
62
63
    /**
64
     * @param mixed $default
65
     *
66
     * @return mixed
67
     */
68 96
    public function tryGetBodyField(int $key, $default = null)
69
    {
70 96
        return \array_key_exists($key, $this->body) ? $this->body[$key] : $default;
71
    }
72
73 6
    public function hasBodyField(int $key) : bool
74
    {
75 6
        return \array_key_exists($key, $this->body);
76
    }
77
}
78