RedirectsMissingPages::handle()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 3

Importance

Changes 0
Metric Value
dl 0
loc 9
ccs 5
cts 5
cp 1
rs 9.6666
c 0
b 0
f 0
cc 3
eloc 5
nc 3
nop 2
crap 3
1
<?php namespace Arcanedev\LaravelSeo\Http\Middleware;
2
3
use Arcanedev\LaravelSeo\Contracts\RedirectorFactory;
4
use Closure;
5
use Illuminate\Http\Request;
6
use Symfony\Component\HttpFoundation\Response;
7
8
/**
9
 * Class     RedirectsMissingPages
10
 *
11
 * @package  Arcanedev\LaravelSeo\Http\Middleware
12
 * @author   ARCANEDEV <[email protected]>
13
 */
14
class RedirectsMissingPages
15
{
16
    /* -----------------------------------------------------------------
17
     |  Properties
18
     | -----------------------------------------------------------------
19
     */
20
21
    /** @var  \Arcanedev\LaravelSeo\Contracts\Redirector */
22
    protected $redirector;
23
24
    /* -----------------------------------------------------------------
25
     |  Constructor
26
     | -----------------------------------------------------------------
27
     */
28
29
    /**
30
     * RedirectsMissingPages constructor.
31
     *
32
     * @param  \Arcanedev\LaravelSeo\Contracts\RedirectorFactory  $redirectorManager
33
     */
34 16
    public function __construct(RedirectorFactory $redirectorManager)
35
    {
36 16
        $this->redirector = $redirectorManager->driver();
37 16
    }
38
39
    /* -----------------------------------------------------------------
40
     |  Main Methods
41
     | -----------------------------------------------------------------
42
     */
43
44
    /**
45
     * Handle the missing pages redirection.
46
     *
47
     * @param  \Illuminate\Http\Request  $request
48
     * @param  \Closure                  $next
49
     *
50
     * @return mixed
51
     */
52 16
    public function handle(Request $request, Closure $next)
53
    {
54 16
        $response = $next($request);
55
56 16
        if ($response->getStatusCode() !== Response::HTTP_NOT_FOUND)
57 6
            return $response;
58
59 12
        return $this->redirector->getRedirectFor($request) ?: $response;
60
    }
61
}
62