RedirectsMissingPages   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 48
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 2
dl 0
loc 48
ccs 8
cts 8
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A handle() 0 9 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