TrackTrafficMiddleware::handle()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 17
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

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