Failed Conditions
Push — master ( 88a375...460296 )
by Florent
04:20
created

UserParametersRule::handle()   B

Complexity

Conditions 4
Paths 8

Size

Total Lines 22
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 22
rs 8.9197
c 0
b 0
f 0
cc 4
eloc 16
nc 8
nop 4
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * The MIT License (MIT)
7
 *
8
 * Copyright (c) 2014-2017 Spomky-Labs
9
 *
10
 * This software may be modified and distributed under the terms
11
 * of the MIT license.  See the LICENSE file for details.
12
 */
13
14
namespace OAuth2Framework\Component\Server\Model\Client\Rule;
15
16
use Assert\Assertion;
17
use OAuth2Framework\Component\Server\Model\DataBag\DataBag;
18
use OAuth2Framework\Component\Server\Model\UserAccount\UserAccountId;
19
20
final class UserParametersRule implements RuleInterface
21
{
22
    /**
23
     * {@inheritdoc}
24
     */
25
    public function handle(DataBag $commandParameters, DataBag $validatedParameters, ? UserAccountId $userAccountId, callable $next): DataBag
26
    {
27
        if ($commandParameters->has('require_auth_time')) {
28
            $require_auth_time = $commandParameters->get('require_auth_time');
29
            Assertion::boolean($require_auth_time, 'The parameter \'require_auth_time\' must be a boolean.');
30
            $validatedParameters = $validatedParameters->with('require_auth_time', $require_auth_time);
31
        }
32
        if ($commandParameters->has('default_max_age')) {
33
            $default_max_age = $commandParameters->get('default_max_age');
34
            Assertion::integer($default_max_age, 'The parameter \'default_max_age\' must be a positive integer.');
35
            Assertion::min($default_max_age, 0, 'The parameter \'default_max_age\' must be a positive integer.');
36
            $validatedParameters = $validatedParameters->with('default_max_age', $default_max_age);
37
        }
38
        if ($commandParameters->has('default_acr_values')) {
39
            $default_acr_values = $commandParameters->get('default_acr_values');
40
            Assertion::isArray($default_acr_values, 'The parameter \'default_acr_values\' must be an array of strings.');
41
            Assertion::allString($default_acr_values, 'The parameter \'default_acr_values\' must be an array of strings.');
42
            $validatedParameters = $validatedParameters->with('default_acr_values', $default_acr_values);
43
        }
44
45
        return $next($commandParameters, $validatedParameters, $userAccountId);
46
    }
47
}
48