Passed
Push — master ( 4c5faf...429320 )
by Chris
04:23
created

Request   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 68
Duplicated Lines 0 %

Test Coverage

Coverage 91.67%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 21
c 1
b 0
f 0
dl 0
loc 68
ccs 22
cts 24
cp 0.9167
rs 10
wmc 8

6 Methods

Rating   Name   Duplication   Size   Complexity  
A getArgs() 0 17 3
A getParams() 0 3 1
A has() 0 5 1
A attr() 0 3 1
A hasAttr() 0 5 1
A var() 0 5 1
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