Passed
Push — main ( 085d3b...16bf0e )
by Thomas
02:32
created

Middleware   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 16
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 1
eloc 6
c 2
b 0
f 0
dl 0
loc 16
ccs 7
cts 7
cp 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A process() 0 8 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Conia\Http;
6
7
use Psr\Http\Message\ResponseInterface;
8
use Psr\Http\Message\ServerRequestInterface;
9
use Psr\Http\Server\MiddlewareInterface;
10
use Psr\Http\Server\RequestHandlerInterface;
11
12
/** @psalm-api */
13
abstract class Middleware implements MiddlewareInterface
14
{
15 1
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
16
    {
17 1
        return $this->handle(
18 1
            new Request($request),
19 1
            function (Request $request) use ($handler): Response {
20 1
                return new Response($handler->handle($request->unwrap()));
21 1
            }
22 1
        )->unwrap();
23
    }
24
25
    /**
26
     * @param callable(Request): Response $next
27
     */
28
    abstract public function handle(Request $request, callable $next): Response;
29
}
30