Completed
Pull Request — master (#27)
by Michal
07:40
created

RedisHeaderManager   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 90
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 87.5%

Importance

Changes 0
Metric Value
wmc 7
lcom 0
cbo 1
dl 0
loc 90
ccs 63
cts 72
cp 0.875
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A databasesHeaders() 0 17 1
A tablesHeaders() 0 35 1
A itemsHeaders() 0 33 5
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
            ->setDecimals(2);
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
42 2
        $setColumns = [];
43 2
        $setColumns[] = (new Column('key', 'redis.headers.sets.key'))
44 2
            ->setSortable(true);
45 2
        $setColumns[] = (new Column('number_of_members', 'redis.headers.sets.number_of_members'))
46 2
            ->setSortable(true)
47 2
            ->setNumeric(true);
48
49 2
        $listColumns = [];
50 2
        $listColumns[] = (new Column('key', 'redis.headers.lists.key'))
51 2
            ->setSortable(true);
52 2
        $listColumns[] = (new Column('number_of_elements', 'redis.headers.lists.number_of_elements'))
53 2
            ->setSortable(true)
54 2
            ->setNumeric(true);
55
56
        return [
57 2
            RedisDriver::TYPE_KEY => $keyColumns,
58 2
            RedisDriver::TYPE_HASH => $hashColumns,
59 2
            RedisDriver::TYPE_SET => $setColumns,
60 2
            RedisDriver::TYPE_LIST => $listColumns,
61
        ];
62
    }
63
64 2
    public function itemsHeaders($type, $table)
65
    {
66 2
        $columns = [];
67 2
        if ($type == RedisDriver::TYPE_KEY || $type == RedisDriver::TYPE_HASH) {
68 2
            $columns[] = (new Column('key', 'redis.columns.' . $type . '.key'))
69 2
                ->setSortable(true)
70 2
                ->setFilterable(true);
71 2
            $columns[] = (new Column('length', 'redis.columns.' . $type . '.length'))
72 2
                ->setSortable(true)
73 2
                ->setFilterable(true);
74 2
            $columns[] = (new Column('value', 'redis.columns.' . $type . '.value'))
75 2
                ->setSortable(true)
76 2
                ->setFilterable(true);
77 2
        } elseif ($type == RedisDriver::TYPE_SET) {
78 2
            $columns[] = (new Column('member', 'redis.columns.' . $type . '.member'))
79 2
                ->setSortable(true)
80 2
                ->setFilterable(true);
81 2
            $columns[] = (new Column('length', 'redis.columns.' . $type . '.length'))
82 2
                ->setSortable(true)
83 2
                ->setFilterable(true);
84 2
        } elseif ($type === RedisDriver::TYPE_LIST) {
85
            $columns[] = (new Column('index', 'redis.columns.' . $type . '.index'))
86
                ->setSortable(true)
87
                ->setFilterable(true);
88
            $columns[] = (new Column('element', 'redis.columns.' . $type . '.element'))
89
                ->setSortable(true)
90
                ->setFilterable(true);
91
            $columns[] = (new Column('length', 'redis.columns.' . $type . '.length'))
92
                ->setSortable(true)
93
                ->setFilterable(true);
94
        }
95 2
        return $columns;
96
    }
97
}
98