Completed
Push — feature/ra-location-api ( 6ec852...d41fe4 )
by A.
04:39
created

RaLocationController::getRaLocationService()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 4
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
/**
4
 * Copyright 2016 SURFnet B.V.
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
 */
18
19
namespace Surfnet\StepupMiddleware\ApiBundle\Controller;
20
21
use Surfnet\Stepup\Configuration\Value\Institution;
22
use Surfnet\StepupMiddleware\ApiBundle\Configuration\Query\RaLocationQuery;
23
use Surfnet\StepupMiddleware\ApiBundle\Configuration\Service\RaLocationService;
24
use Surfnet\StepupMiddleware\ApiBundle\Response\JsonCollectionResponse;
25
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
26
use Symfony\Component\HttpFoundation\Request;
27
28
final class RaLocationController extends Controller
29
{
30
    public function listAction(Request $request, Institution $institution)
31
    {
32
        $this->denyAccessUnlessGranted(['ROLE_RA', 'ROLE_SS']);
33
34
        $query                 = new RaLocationQuery();
35
        $query->institution    = $institution;
36
        $query->orderBy        = $request->get('orderBy', $query->orderBy);
37
        $query->orderDirection = $request->get('orderDirection', $query->orderDirection);
38
39
        $raLocations = $this->getRaLocationService()->findByInstitution($query);
40
        $count = count($raLocations);
41
42
        return new JsonCollectionResponse($count, 1, $count, $raLocations);
0 ignored issues
show
Bug introduced by
It seems like $raLocations defined by $this->getRaLocationServ...ndByInstitution($query) on line 39 can also be of type null; however, Surfnet\StepupMiddleware...Response::__construct() does only seem to accept array, maybe add an additional type check?

If a method or function can return multiple different values and unless you are sure that you only can receive a single value in this context, we recommend to add an additional type check:

/**
 * @return array|string
 */
function returnsDifferentValues($x) {
    if ($x) {
        return 'foo';
    }

    return array();
}

$x = returnsDifferentValues($y);
if (is_array($x)) {
    // $x is an array.
}

If this a common case that PHP Analyzer should handle natively, please let us know by opening an issue.

Loading history...
43
    }
44
45
    /**
46
     * @return RaLocationService
47
     */
48
    private function getRaLocationService()
49
    {
50
        return $this->container->get('surfnet_stepup_middleware_api.service.ra_location');
51
    }
52
}
53