Completed
Pull Request — master (#3)
by Denis
01:34
created

GridViewRequest::configTests()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Woo\GridView;
4
5
use Illuminate\Support\Facades\Request;
6
use Woo\GridView\Traits\Configurable;
7
8
class GridViewRequest
9
{
10
    use Configurable;
11
12
    public $page;
13
14
    public $sortColumn;
15
16
    public $sortOrder;
17
18
    public $filters = [];
19
20
    private function __construct($config)
21
    {
22
        $this->loadConfig($config);
23
    }
24
25
    /**
26
     * Allows to parse request information and making request instance
27
     * @param int $gridId
28
     * @return GridViewRequest
29
     */
30
    public static function parse(int $gridId)
31
    {
32
        $request = Request::instance();
33
34
        return new GridViewRequest([
35
            'page' => (int)$request->input($gridId == 0 ? 'page' : 'grid.' . $gridId . '.page', 1),
36
            'sortColumn' => $request->input($gridId == 0 ? 'sort' : 'grid.' . $gridId . '.sort'),
37
            'sortOrder' => $request->input($gridId == 0 ? 'order' : 'grid.' . $gridId . '.order'),
38
            'filters' => $request->input($gridId == 0 ? 'filters' : 'grid.' . $gridId . '.filters', []),
39
        ]);
40
    }
41
42
    public function getFilterValue(string $name)
43
    {
44
        return $this->filters[$name] ?? '';
45
    }
46
47
    /**
48
     * Should specify tests
49
     * @return array
50
     */
51
    protected function configTests(): array
52
    {
53
        return [];
54
    }
55
}