Completed
Push — master ( 921d57...18f6a2 )
by Michal
02:03
created

RedisHeaderManager::itemsHeaders()   B

Complexity

Conditions 6
Paths 5

Size

Total Lines 46

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 43
CRAP Score 6

Importance

Changes 0
Metric Value
dl 0
loc 46
ccs 43
cts 43
cp 1
rs 8.5559
c 0
b 0
f 0
cc 6
nc 5
nop 2
crap 6
1
<?php
2
3
namespace UniMan\Drivers\Redis;
4
5
use UniMan\Core\Column;
6
use UniMan\Core\ListingHeaders\HeaderManagerInterface;
7
8
class RedisHeaderManager implements HeaderManagerInterface
9
{
10 2
    public function databasesHeaders()
11
    {
12 2
        $columns = [];
13 2
        $columns[] = (new Column('database', 'redis.headers.databases.database'))
14 2
            ->setSortable(true);
15 2
        $columns[] = (new Column('keys', 'redis.headers.databases.keys'))
16 2
            ->setSortable(true)
17 2
            ->setNumeric(true);
18 2
        $columns[] = (new Column('expires', 'redis.headers.databases.expires'))
19 2
            ->setSortable(true)
20 2
            ->setNumeric(true);
21 2
        $columns[] = (new Column('avg_ttl', 'redis.headers.databases.avg_ttl'))
22 2
            ->setSortable(true)
23 2
            ->setNumeric(true)
24 2
            ->setTime(true);
25 2
        return $columns;
26
    }
27
28 2
    public function tablesHeaders()
29
    {
30 2
        $keyColumns = [];
31 2
        $keyColumns[] = (new Column('key', 'redis.headers.keys.key'));
32 2
        $keyColumns[] = (new Column('number_of_keys', 'redis.headers.keys.number_of_keys'))
33 2
            ->setNumeric(true);
34
35 2
        $hashColumns = [];
36 2
        $hashColumns[] = (new Column('key', 'redis.headers.hashes.key'))
37 2
            ->setSortable(true);
38 2
        $hashColumns[] = (new Column('number_of_fields', 'redis.headers.hashes.number_of_fields'))
39 2
            ->setSortable(true)
40 2
            ->setNumeric(true);
41 2
        $hashColumns[] = (new Column('ttl', 'redis.headers.global.ttl'))
42 2
            ->setSortable(true)
43 2
            ->setNumeric(true)
44 2
            ->setTime(true);
45
46 2
        $setColumns = [];
47 2
        $setColumns[] = (new Column('key', 'redis.headers.sets.key'))
48 2
            ->setSortable(true);
49 2
        $setColumns[] = (new Column('number_of_members', 'redis.headers.sets.number_of_members'))
50 2
            ->setSortable(true)
51 2
            ->setNumeric(true);
52 2
        $setColumns[] = (new Column('ttl', 'redis.headers.global.ttl'))
53 2
            ->setSortable(true)
54 2
            ->setNumeric(true)
55 2
            ->setTime(true);
56
57 2
        $listColumns = [];
58 2
        $listColumns[] = (new Column('key', 'redis.headers.lists.key'))
59 2
            ->setSortable(true);
60 2
        $listColumns[] = (new Column('number_of_elements', 'redis.headers.lists.number_of_elements'))
61 2
            ->setSortable(true)
62 2
            ->setNumeric(true);
63 2
        $listColumns[] = (new Column('ttl', 'redis.headers.global.ttl'))
64 2
            ->setSortable(true)
65 2
            ->setNumeric(true)
66 2
            ->setTime(true);
67
68 2
        $sortedSetColums = [];
69 2
        $sortedSetColums[] = (new Column('key', 'redis.headers.sorted_sets.key'))
70 2
            ->setSortable(true);
71 2
        $sortedSetColums[] = (new Column('number_of_members', 'redis.headers.sorted_sets.number_of_members'))
72 2
            ->setSortable(true)
73 2
            ->setNumeric(true);
74 2
        $sortedSetColums[] = (new Column('ttl', 'redis.headers.global.ttl'))
75 2
            ->setSortable(true)
76 2
            ->setNumeric(true)
77 2
            ->setTime(true);
78
79
        return [
80 2
            RedisDriver::TYPE_KEY => $keyColumns,
81 2
            RedisDriver::TYPE_HASH => $hashColumns,
82 2
            RedisDriver::TYPE_SET => $setColumns,
83 2
            RedisDriver::TYPE_LIST => $listColumns,
84 2
            RedisDriver::TYPE_SORTED_SET => $sortedSetColums,
85
        ];
86
    }
87
88 2
    public function itemsHeaders($type, $table)
89
    {
90 2
        $columns = [];
91 2
        if ($type == RedisDriver::TYPE_KEY || $type == RedisDriver::TYPE_HASH) {
92 2
            $columns[] = (new Column('key', 'redis.columns.' . $type . '.key'))
93 2
                ->setSortable(true)
94 2
                ->setFilterable(true);
95 2
            $columns[] = (new Column('length', 'redis.columns.' . $type . '.length'))
96 2
                ->setSortable(true)
97 2
                ->setFilterable(true);
98 2
            $columns[] = (new Column('value', 'redis.columns.' . $type . '.value'))
99 2
                ->setSortable(true)
100 2
                ->setFilterable(true);
101 2
        } elseif ($type == RedisDriver::TYPE_SET) {
102 2
            $columns[] = (new Column('member', 'redis.columns.' . $type . '.member'))
103 2
                ->setSortable(true)
104 2
                ->setFilterable(true);
105 2
            $columns[] = (new Column('length', 'redis.columns.' . $type . '.length'))
106 2
                ->setSortable(true)
107 2
                ->setFilterable(true);
108 2
        } elseif ($type === RedisDriver::TYPE_LIST) {
109 2
            $columns[] = (new Column('index', 'redis.columns.' . $type . '.index'))
110 2
                ->setSortable(true)
111 2
                ->setFilterable(true);
112 2
            $columns[] = (new Column('element', 'redis.columns.' . $type . '.element'))
113 2
                ->setSortable(true)
114 2
                ->setFilterable(true);
115 2
            $columns[] = (new Column('length', 'redis.columns.' . $type . '.length'))
116 2
                ->setSortable(true)
117 2
                ->setFilterable(true);
118 2
        } elseif ($type === RedisDriver::TYPE_SORTED_SET) {
119 2
            $columns[] = (new Column('member', 'redis.columns.' . $type . '.member'))
120 2
                ->setSortable(true)
121 2
                ->setFilterable(true);
122 2
            $columns[] = (new Column('score', 'redis.columns.' . $type . '.score'))
123 2
                ->setSortable(true)
124 2
                ->setNumeric(true)
125 2
                ->setDecimals(10)
126 2
                ->setFilterable(true);
127 2
            $columns[] = (new Column('length', 'redis.columns.' . $type . '.length'))
128 2
                ->setSortable(true)
129 2
                ->setNumeric(true)
130 2
                ->setFilterable(true);
131
        }
132 2
        return $columns;
133
    }
134
}
135