Logout::__invoke()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 14
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 2

Importance

Changes 0
Metric Value
cc 2
eloc 5
nc 2
nop 3
dl 0
loc 14
ccs 6
cts 6
cp 1
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * For the full copyright and license information, please view
5
 * the LICENSE file that was distributed with this source code.
6
 *
7
 * @see https://github.com/ecphp
8
 */
9
10
declare(strict_types=1);
11
12
namespace EcPhp\CasBundle\Controller;
13
14
use EcPhp\CasLib\CasInterface;
15
use Psr\Http\Message\ResponseInterface;
16
use Symfony\Component\HttpFoundation\RedirectResponse;
17
use Symfony\Component\HttpFoundation\Request;
18
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
19
20
final class Logout
21
{
22
    /**
23
     * @return RedirectResponse|ResponseInterface
24
     */
25 2
    public function __invoke(
26
        Request $request,
27
        CasInterface $cas,
28
        TokenStorageInterface $tokenStorage
29
    ) {
30 2
        $response = $cas->logout($request->query->all());
31
32 2
        if (null === $response) {
33 1
            return new RedirectResponse('/');
34
        }
35
36 1
        $tokenStorage->setToken();
37
38 1
        return $response;
39
    }
40
}
41