Completed
Push — dev ( 4306de...25864c )
by Arnaud
02:52
created

PagerfantaFilter::filter()   B

Complexity

Conditions 4
Paths 6

Size

Total Lines 23
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 6

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 23
ccs 8
cts 16
cp 0.5
rs 8.7972
cc 4
eloc 13
nc 6
nop 1
crap 6
1
<?php
2
3
namespace LAG\AdminBundle\Filter;
4
5
use Symfony\Component\HttpFoundation\Request;
6
use Symfony\Component\HttpFoundation\ParameterBag;
7
8
class PagerfantaFilter
9
{
10
    /**
11
     * Filter request
12
     *
13
     * @param Request $request
14
     * @return ParameterBag
15
     */
16 5
    public function filter(Request $request)
17
    {
18 5
        $filteredValues = new ParameterBag();
19
        // order column, like "name"
20 5
        $order = $request->get('order');
21
        // sort value, asc or desc
22 5
        $sort = $request->get('sort');
23
        // page number, like 2
24 5
        $page = $request->get('page');
25
26 5
        if ($order) {
27
            if (!$sort) {
28
                $sort = 'asc';
29
            }
30
            $filteredValues->set('order', [
31
                $sort => $order
32
            ]);
33
        }
34 5
        if ($page) {
35
            $filteredValues->set('page', $page);
36
        }
37 5
        return $filteredValues;
38
    }
39
}
40