DisqusMiddleware::handleDisqus()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 5
ccs 4
cts 4
cp 1
crap 1
rs 9.4285
c 0
b 0
f 0
1
<?php namespace Arcanedev\LaravelDisqus\Http\Middleware;
2
3
use Arcanedev\LaravelDisqus\Contracts\Disqus;
4
use Closure;
5
6
/**
7
 * Class     DisqusMiddleware
8
 *
9
 * @package  Arcanedev\LaravelDisqus\Http\Middleware
10
 * @author   ARCANEDEV <[email protected]>
11
 */
12
class DisqusMiddleware
13
{
14
    /* -----------------------------------------------------------------
15
     |  Properties
16
     | -----------------------------------------------------------------
17
     */
18
19
    /**
20
     * The Disqus instance.
21
     *
22
     * @var  \Arcanedev\LaravelDisqus\Contracts\Disqus
23
     */
24
    protected $disqus;
25
26
    /* -----------------------------------------------------------------
27
     |  Constructor
28
     | -----------------------------------------------------------------
29
     */
30
31
    /**
32
     * DisqusMiddleware constructor.
33
     *
34
     * @param  \Arcanedev\LaravelDisqus\Contracts\Disqus  $disqus
35
     */
36 3
    public function __construct(Disqus $disqus)
37
    {
38 3
        $this->disqus = $disqus;
39 3
    }
40
41
    /* -----------------------------------------------------------------
42
     |  Main Methods
43
     | -----------------------------------------------------------------
44
     */
45
46
    /**
47
     * Handle an incoming request.
48
     *
49
     * @param  \Illuminate\Http\Request  $request
50
     * @param  \Closure                  $next
51
     *
52
     * @return mixed
53
     */
54 3
    public function handle($request, Closure $next)
55
    {
56 3
        if ($this->disqus->isEnabled())
57 3
            $this->handleDisqus($request);
58
59 3
        return $next($request);
60
    }
61
62
    /* -----------------------------------------------------------------
63
     |  Other Methods
64
     | -----------------------------------------------------------------
65
     */
66
67
    /**
68
     * Handle Disqus.
69
     *
70
     * @param  \Illuminate\Http\Request  $request
71
     */
72 3
    protected function handleDisqus($request)
73
    {
74 3
        $this->disqus->setPageUrl($request->url())
75 3
                     ->setPageId($this->getPageId($request));
76 3
    }
77
78
    /**
79
     * Get the page id.
80
     *
81
     * @param  \Illuminate\Http\Request  $request
82
     *
83
     * @return string
84
     */
85 3
    protected function getPageId($request)
86
    {
87 3
        $path = implode('.', explode('/', $request->getPathInfo()));
88
89 3
        return 'base'.($path === '.' ? $path.'home' : $path);
90
    }
91
}
92