Completed
Push — master ( 356279...28992d )
by Dmitry
02:58
created

Toolkit::download()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
crap 1
1
<?php
2
3
namespace Basis;
4
5
use Tarantool\Mapper\Entity;
6
use Tarantool\Mapper\Mapper;
7
use Tarantool\Mapper\Pool;
8
use Tarantool\Queue\Queue;
9
10
trait Toolkit
11
{
12
    protected $app;
13
14 50
    public function __construct(Application $app)
15
    {
16 50
        $this->app = $app;
17 50
    }
18
19 4
    protected function create(string $space, array $data)
20
    {
21 4
        return $this->getRepository($space)->create($data)->save();
22
    }
23
24 50
    protected function dispatch(string $job, array $params = [], string $service = null)
25
    {
26 50
        return $this->app->dispatch($job, $params, $service);
27
    }
28
29 3
    protected function find(string $space, $params = []) : array
30
    {
31 3
        return $this->getRepository($space)->find($params);
32
    }
33
34 2
    protected function findOne(string $space, $params = [])
35
    {
36 2
        return $this->getRepository($space)->findOne($params);
37
    }
38
39 2
    protected function findOrCreate(string $space, $params = [])
40
    {
41 2
        return $this->getRepository($space)->findOrCreate($params);
42
    }
43
44 3
    protected function findOrFail(string $space, $params = [])
45
    {
46 3
        return $this->getRepository($space)->findOrFail($params);
47
    }
48
49
    protected function fire(string $event, array $context)
50
    {
51
        return $this->get(Event::class)->fire($event, $context);
52
    }
53
54 27
    protected function get(string $class)
55
    {
56 27
        return $this->app->get($class);
57
    }
58
59 1
    protected function getDate()
60
    {
61 1
        return call_user_func_array([$this->get(Converter::class), 'getDate'], func_get_args());
62
    }
63
64 4
    protected function getMapper()
65
    {
66 4
        return $this->get(Mapper::class);
67
    }
68
69 5
    protected function getRepository($space)
70
    {
71 5
        if (strpos($space, '.') !== false) {
72 2
            return $this->get(Pool::class)->getRepository($space);
73
        }
74 3
        return $this->get(Mapper::class)->getRepository($space);
75
    }
76
77
    protected function getQueue($tube)
78
    {
79
        $alias = "queue.$tube";
80
        if (!$this->app->hasInstance($alias, true)) {
81
            $client = $this->getMapper()->getClient();
82
            $client->evaluate("
83
                if queue == nil then
84
                    queue = require('queue')
85
                end
86
            ");
87
            $this->app->share($alias, new Queue($client, $tube));
88
        }
89
90
        return $this->app->get($alias);
91
    }
92
93 2
    protected function remove(string $space, array $params = [])
94
    {
95 2
        return $this->getRepository($space)->remove($params);
96
    }
97
98 2
    protected function select($fields, string $table, array $params)
99
    {
100 2
        return $this->get(Clickhouse::class)->select($fields, $table, $params);
101
    }
102
103 2
    protected function insert(string $table, array $data, array $headers)
104
    {
105 2
        return $this->get(Clickhouse::class)->insert($table, $data, $headers);
106
    }
107
108 1
    protected function upload(string $filename, $contents) : string
109
    {
110 1
        return $this->get(Storage::class)->upload($filename, $contents);
111
    }
112
113 1
    protected function download(string $hash)
114
    {
115 1
        return $this->get(Storage::class)->download($hash);
116
    }
117
118
    public function __debugInfo()
119
    {
120
        $info = get_object_vars($this);
121
        unset($info['app']);
122
        return $info;
123
    }
124
}
125