Completed
Push — master ( 5c0b6f...5c71f2 )
by Oleg
10:16
created

SetOwnerMiddleware::process()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 3.0175

Importance

Changes 0
Metric Value
dl 0
loc 14
ccs 7
cts 8
cp 0.875
rs 9.7998
c 0
b 0
f 0
cc 3
nc 3
nop 2
crap 3.0175
1
<?php
2
declare(strict_types=1);
3
4
namespace SlayerBirden\DataFlowServer\Domain\Middleware;
5
6
use Psr\Http\Message\ResponseInterface;
7
use Psr\Http\Message\ServerRequestInterface;
8
use Psr\Http\Server\MiddlewareInterface;
9
use Psr\Http\Server\RequestHandlerInterface;
10
use SlayerBirden\DataFlowServer\Authentication\Middleware\TokenMiddleware;
11
use SlayerBirden\DataFlowServer\Domain\Entities\ClaimedResourceInterface;
12
use SlayerBirden\DataFlowServer\Stdlib\Validation\DataValidationResponseFactory;
13
14
final class SetOwnerMiddleware implements MiddlewareInterface
15
{
16
    /**
17
     * @inheritdoc
18
     */
19 11
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
20
    {
21 11
        $data = $request->getParsedBody();
22 11
        if (!is_array($data)) {
23
            return (new DataValidationResponseFactory())();
24
        }
25
26 11
        $user = $request->getAttribute(TokenMiddleware::USER_PARAM);
27 11
        if ($user) {
28 11
            $data[ClaimedResourceInterface::OWNER_PARAM] = $user;
29
        }
30
31 11
        return $handler->handle($request->withParsedBody($data));
32
    }
33
}
34