RedirectsMissingPages::shouldRedirect()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 14
rs 9.7998
c 0
b 0
f 0
cc 3
nc 3
nop 1
1
<?php
2
3
namespace Spatie\MissingPageRedirector;
4
5
use Closure;
6
use Illuminate\Http\Request;
7
8
class RedirectsMissingPages
9
{
10
    public function handle(Request $request, Closure $next)
11
    {
12
        $response = $next($request);
13
14
        if (! $this->shouldRedirect($response)) {
15
            return $response;
16
        }
17
18
        $redirectResponse = app(MissingPageRouter::class)->getRedirectFor($request);
19
20
        return $redirectResponse ?? $response;
21
    }
22
23
    protected function shouldRedirect($response): bool
24
    {
25
        $redirectStatusCodes = config('missing-page-redirector.redirect_status_codes');
26
27
        if (is_null($redirectStatusCodes)) {
28
            return false;
29
        }
30
31
        if (! count($redirectStatusCodes)) {
32
            return true;
33
        }
34
35
        return in_array($response->getStatusCode(), $redirectStatusCodes);
36
    }
37
}
38