Passed
Push — master ( b6a195...1e79f7 )
by mcfog
03:21
created

PredictionWrapperMiddleware::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 3
dl 0
loc 8
ccs 4
cts 4
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Lit\Nimo\Middlewares;
6
7
use Lit\Nimo\Interfaces\RequestPredictionInterface;
8
use Psr\Http\Message\ServerRequestInterface;
9
use Psr\Http\Server\MiddlewareInterface;
10
use Psr\Http\Server\RequestHandlerInterface;
11
12
class PredictionWrapperMiddleware extends AbstractConditionMiddleware
13
{
14
    /**
15
     * @var RequestPredictionInterface
16
     */
17
    protected $requestPrediction;
18
    /**
19
     * @var bool
20
     */
21
    protected $reverted;
22
23 2
    public function __construct(
24
        MiddlewareInterface $innerMiddleware,
25
        RequestPredictionInterface $requestPrediction,
26
        $reverted = false
27
    ) {
28 2
        parent::__construct($innerMiddleware);
29 2
        $this->requestPrediction = $requestPrediction;
30 2
        $this->reverted = $reverted;
31 2
    }
32
33 2
    protected function shouldRun(ServerRequestInterface $request, RequestHandlerInterface $handler): bool
34
    {
35 2
        if ($this->reverted) {
36 1
            return !$this->requestPrediction->isTrue($request);
37
        } else {
38 2
            return $this->requestPrediction->isTrue($request);
39
        }
40
    }
41
}
42