Passed
Push — master ( 042e95...d37488 )
by Chris
02:46
created

Request::getParams()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 1
c 0
b 0
f 0
nc 1
nop 1
dl 0
loc 3
ccs 0
cts 2
cp 0
crap 2
rs 10
1
<?php
2
3
namespace WebTheory\Saveyour;
4
5
use Psr\Http\Message\ServerRequestInterface;
6
7
class Request
8
{
9
    /**
10
     *
11
     */
12 24
    public static function var(ServerRequestInterface $request, $param)
13
    {
14 24
        $request = static::getArgs($request);
15
16 24
        return $request[$param] ?? null;
17
    }
18
19
    /**
20
     *
21
     */
22 18
    public static function has(ServerRequestInterface $request, $param): bool
23
    {
24 18
        $request = static::getArgs($request);
25
26 18
        return isset($request[$param]);
27
    }
28
29
    /**
30
     *
31
     */
32 3
    public static function attr(ServerRequestInterface $request, $attribute)
33
    {
34 3
        return $request->getAttribute($attribute);
35
    }
36
37
    /**
38
     *
39
     */
40 3
    public static function hasAttr(ServerRequestInterface $request, $attribute): bool
41
    {
42 3
        $attributes = $request->getAttributes();
43
44 3
        return isset($attributes[$attribute]);
45
    }
46
47
    /**
48
     *
49
     */
50 27
    public static function getArgs(ServerRequestInterface $request): array
51
    {
52 27
        switch ($request->getMethod()) {
53 27
            case 'GET':
54 9
                $request = $request->getQueryParams();
55 9
                break;
56
57 18
            case 'POST':
58 15
                $request = $request->getParsedBody();
59 15
                break;
60
61
            default:
62 3
                $request = $request->getParsedBody();
63 3
                break;
64
        }
65
66 27
        return (array) $request;
67
    }
68
69
    /**
70
     *
71
     */
72
    public static function getParams(ServerRequestInterface $request): array
73
    {
74
        return array_keys(static::getArgs($request));
75
    }
76
}
77