Passed
Push — master ( 674916...0ca712 )
by Stephen
01:12 queued 11s
created

TrackTrafficMiddleware::track()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 4
rs 10
1
<?php
2
3
namespace Sfneal\Tracking\Middleware;
4
5
use Closure;
6
use Illuminate\Http\Request;
7
use Sfneal\Tracking\Events\TrackTrafficEvent;
8
9
class TrackTrafficMiddleware
10
{
11
    /**
12
     * Handle an incoming request.
13
     *
14
     * @param Request $request
15
     * @param Closure $next
16
     *
17
     * @return mixed
18
     */
19
    public function handle(Request $request, Closure $next)
20
    {
21
        // Create response
22
        $response = $next($request);
23
24
        // Check if traffic tracking is enabled
25
        if (config('tracking.traffic.track')) {
26
            // Add unique ID to be used to relate traffic & activities
27
            $request->attributes->add(['track_traffic_token' => uniqid()]);
28
29
            // Fire Traffic Tracker event
30
            event(new TrackTrafficEvent($request, $response, microtime(true)));
31
        }
32
33
        // false value signifies that the tracking token was disabled
34
        else {
35
            $request->attributes->add(['track_traffic_token' => false]);
36
        }
37
38
        // Return the response
39
        return $response;
40
    }
41
}
42