InstitutionValueResolver   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 22
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 10
dl 0
loc 22
rs 10
c 0
b 0
f 0
wmc 4

1 Method

Rating   Name   Duplication   Size   Complexity  
A resolve() 0 17 4
1
<?php
2
3
/**
4
 * Copyright 2014 SURFnet bv
5
 *
6
 * Licensed under the Apache License, Version 2.0 (the "License");
7
 * you may not use this file except in compliance with the License.
8
 * You may obtain a copy of the License at
9
 *
10
 *     http://www.apache.org/licenses/LICENSE-2.0
11
 *
12
 * Unless required by applicable law or agreed to in writing, software
13
 * distributed under the License is distributed on an "AS IS" BASIS,
14
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
 * See the License for the specific language governing permissions and
16
 * limitations under the License.
17
 */
0 ignored issues
show
Coding Style introduced by
Missing @link tag in file comment
Loading history...
18
19
namespace Surfnet\StepupMiddleware\ApiBundle\Request;
20
21
use Surfnet\Stepup\Identity\Value\Institution;
22
use Surfnet\StepupMiddleware\ApiBundle\Exception\BadApiRequestException;
23
use Symfony\Component\HttpFoundation\Request;
24
use Symfony\Component\HttpKernel\Controller\ValueResolverInterface;
25
use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata;
26
27
class InstitutionValueResolver implements ValueResolverInterface
0 ignored issues
show
Coding Style introduced by
Missing doc comment for class InstitutionValueResolver
Loading history...
28
{
29
    /**
0 ignored issues
show
Coding Style introduced by
Parameter $request should have a doc-comment as per coding-style.
Loading history...
Coding Style introduced by
Parameter $argument should have a doc-comment as per coding-style.
Loading history...
30
     * @return Institution[]
31
     */
32
    public function resolve(Request $request, ArgumentMetadata $argument): iterable
33
    {
34
        $argumentType = $argument->getType();
35
        if (!$argumentType
36
            || $argumentType !== Institution::class
37
        ) {
38
            return [];
39
        }
40
41
        $query = $request->query;
42
        $institution = $query->get('institution');
43
44
        if (!is_string($institution)) {
45
            throw new BadApiRequestException(['This API-call MUST include the institution as get parameter']);
46
        }
47
48
        return [new Institution($institution)];
49
    }
50
}
51