Passed
Pull Request — master (#33)
by Melech
03:28
created

Message::getDataFromRequest()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 3
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * This file is part of the Valkyrja Framework package.
7
 *
8
 * (c) Melech Mizrachi <[email protected]>
9
 *
10
 * For the full copyright and license information, please view the LICENSE
11
 * file that was distributed with this source code.
12
 */
13
14
namespace Valkyrja\Routing\Messages;
15
16
use Valkyrja\Http\Request;
17
use Valkyrja\Type\Types\Enum\Arrayable;
18
19
/**
20
 * Trait Message.
21
 *
22
 * @author Melech Mizrachi
23
 */
24
trait Message
25
{
26
    use Arrayable;
27
28
    /**
29
     * @inheritDoc
30
     */
31
    public static function getDataFromRequest(Request $request): array
32
    {
33
        return static::getOnlyParamsFromRequest($request, ...static::values());
34
    }
35
36
    /**
37
     * @inheritDoc
38
     */
39
    public static function determineIfRequestContainsExtraData(Request $request): bool
40
    {
41
        return ! empty(static::getExceptParamsFromRequest($request, ...static::values()));
42
    }
43
44
    /**
45
     * @inheritDoc
46
     */
47
    public static function getValidationRules(): array|null
48
    {
49
        return null;
50
    }
51
52
    /**
53
     * Get only the specified request params.
54
     *
55
     * @param Request    $request   The request
56
     * @param int|string ...$values The values
57
     *
58
     * @return array
59
     */
60
    abstract protected static function getOnlyParamsFromRequest(Request $request, int|string ...$values): array;
61
62
    /**
63
     * Get all request params except the ones specified.
64
     *
65
     * @param Request    $request   The request
66
     * @param int|string ...$values The values
67
     *
68
     * @return array
69
     */
70
    abstract protected static function getExceptParamsFromRequest(Request $request, int|string ...$values): array;
71
}
72