RedirectsMissingPages   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
wmc 5
lcom 0
cbo 0
dl 0
loc 30
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A handle() 0 12 2
A shouldRedirect() 0 14 3
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