Completed
Push — master ( 705b66...c30b18 )
by Dmitry
04:21
created

Event::getResponse()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
3
namespace Tarantool\Mapper;
4
5
use Tarantool\Connection\Connection;
6
use Tarantool\IProto;
7
use Tarantool\Request\EvaluateRequest;
8
use Tarantool\Request\Request;
9
use Tarantool\Request\SelectRequest;
10
11
class Event
12
{
13
    private $time;
14
    private $class;
15
    private $request;
16
    private $response;
17
18 59
    public function __construct($time, $class, $request, $response)
19
    {
20 59
        $this->time = $time;
21 59
        $this->class = $class;
22 59
        $this->request = $request;
23 59
        $this->response = $response;
24 59
    }
25
26 1
    public function render(Manager $manager)
27
    {
28 1
        switch ($this->class) {
29 1
            case Connection::class:
30 1
                return 'Make connection';
31
32 1
            case EvaluateRequest::class:
33
                return $this->request[39];
34
35 1
            case SelectRequest::class:
0 ignored issues
show
Coding Style introduced by
The case body in a switch statement must start on the line following the statement.

According to the PSR-2, the body of a case statement must start on the line immediately following the case statement.

switch ($expr) {
case "A":
    doSomething(); //right
    break;
case "B":

    doSomethingElse(); //wrong
    break;

}

To learn more about the PSR-2 coding standard, please refer to the PHP-Fig.

Loading history...
36
37 1
                $params = $this->request[IProto::KEY];
38 1
                $spaceId = $this->request[IProto::SPACE_ID];
39 1
                $index = $this->request[IProto::INDEX_ID];
40
41 1
                $client = $manager->getClient();
42 1
                $meta = $manager->getMeta();
43 1
                $schema = $manager->getSchema();
44 1
                $space = $schema->getSpaceName($spaceId);
45
46 1
                if ($meta->has($space)) {
47 1
                    $index = $meta->get($space)->getIndex($index);
48 1
                } else {
49
                    $data = $client->getSpace('_vindex')->select([$this->request[IProto::SPACE_ID], $index], 'primary')->getData();
50
                    $index = [];
51
                    foreach ($data[0][5] as $row) {
52
                        $index[] = $row[0];
53
                    }
54
                }
55
56 1
                if (count($params) == 1) {
57 1
                    $params = array_shift($params);
58 1
                    $index = array_shift($index);
59 1
                } else {
60
                    $params = json_encode($params);
61
                    $index = json_encode($index);
62
                }
63
64 1
                return "select $space where $index = $params";
65
            default:
66
                return json_encode($this->request);
67
        }
68
    }
69
70
    public function getTime()
71
    {
72
        return $this->time;
73
    }
74
75 1
    public function getResponse()
76
    {
77 1
        return $this->response;
78
    }
79
}
80