Passed
Pull Request — master (#1473)
by
unknown
35:03
created

TokenIntrospectionHandler::respondToRequest()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 16
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
eloc 10
nc 2
nop 2
dl 0
loc 16
rs 9.9332
c 1
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace League\OAuth2\Server\Handlers;
6
7
use League\OAuth2\Server\ResponseTypes\IntrospectionResponse;
8
use League\OAuth2\Server\ResponseTypes\IntrospectionResponseTypeInterface;
9
use Psr\Http\Message\ResponseInterface;
10
use Psr\Http\Message\ServerRequestInterface;
11
12
class TokenIntrospectionHandler extends AbstractTokenHandler
13
{
14
    protected ?IntrospectionResponseTypeInterface $responseType = null;
15
16
    protected function getResponseType(): IntrospectionResponseTypeInterface
17
    {
18
        return $this->responseType === null ? new IntrospectionResponse() : clone $this->responseType;
19
    }
20
21
    public function setResponseType(IntrospectionResponseTypeInterface $responseType): void
22
    {
23
        $this->responseType = $responseType;
24
    }
25
26
    public function respondToRequest(ServerRequestInterface $request, ResponseInterface $response): ResponseInterface
27
    {
28
        $client = $this->validateClient($request);
29
        [$tokenType, $token] = $this->validateToken($request, $client);
30
31
        $responseType = $this->getResponseType();
32
33
        if ($tokenType !== null && $token !== null) {
34
            $responseType->setActive(true);
35
            $responseType->setTokenType($tokenType);
36
            $responseType->setToken($token);
37
        } else {
38
            $responseType->setActive(false);
39
        }
40
41
        return $responseType->generateHttpResponse($response);
42
    }
43
}
44