Completed
Pull Request — master (#3)
by ARCANEDEV
03:24
created

RedirectsMissingPages::handle()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
dl 0
loc 11
ccs 0
cts 8
cp 0
rs 9.4285
c 0
b 0
f 0
cc 3
eloc 6
nc 3
nop 2
crap 12
1
<?php namespace Arcanedev\LaravelSeo\Http\Middleware;
2
3
use Arcanedev\LaravelSeo\RedirectorManager;
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
    /** @var  \Arcanedev\LaravelSeo\Contracts\Redirector */
21
    protected $redirector;
22
23
    /* -----------------------------------------------------------------
24
     |  Constructor
25
     | -----------------------------------------------------------------
26
     */
27
    /**
28
     * RedirectsMissingPages constructor.
29
     *
30
     * @param  \Arcanedev\LaravelSeo\RedirectorManager  $redirectorManager
31
     */
32
    public function __construct(RedirectorManager $redirectorManager)
33
    {
34
        $this->redirector = $redirectorManager->driver();
35
    }
36
37
    /* -----------------------------------------------------------------
38
     |  Main Methods
39
     | -----------------------------------------------------------------
40
     */
41
    /**
42
     * Handle the missing pages redirection.
43
     *
44
     * @param  \Illuminate\Http\Request  $request
45
     * @param  \Closure                  $next
46
     *
47
     * @return mixed
48
     */
49
    public function handle(Request $request, Closure $next)
50
    {
51
        $response = $next($request);
52
53
        if ($response->getStatusCode() !== Response::HTTP_NOT_FOUND)
54
            return $response;
55
56
        $redirectResponse = $this->redirector->getRedirectFor($request);
57
58
        return $redirectResponse ? $redirectResponse : $response;
59
    }
60
}
61