Total Complexity | 4 |
Total Lines | 46 |
Duplicated Lines | 0 % |
Changes | 2 | ||
Bugs | 0 | Features | 0 |
1 | <?php |
||
11 | class TrackTrafficMiddleware |
||
12 | { |
||
13 | /** |
||
14 | * Handle an incoming request. |
||
15 | * |
||
16 | * @param Request $request |
||
17 | * @param Closure $next |
||
18 | * |
||
19 | * @return mixed |
||
20 | */ |
||
21 | public function handle(Request $request, Closure $next) |
||
22 | { |
||
23 | // Add unique ID to be used to relate traffic & activities |
||
24 | $request->attributes->add(['track_traffic_token' => uniqid()]); |
||
25 | |||
26 | $response = $next($request); |
||
27 | |||
28 | if (env('TRACK_TRAFFIC') == true) { |
||
29 | $this->track($request, $response); |
||
30 | } else { |
||
31 | $request->attributes->add(['track_traffic_token' => null]); |
||
32 | } |
||
33 | |||
34 | return $response; |
||
35 | } |
||
36 | |||
37 | /** |
||
38 | * @param Request $request |
||
39 | * @param Response|RedirectResponse $response |
||
40 | */ |
||
41 | private function track(Request $request, $response) |
||
42 | { |
||
43 | // Fire Traffic Tracker event |
||
44 | event(new TrackTrafficEvent( |
||
45 | $request, |
||
46 | $response, |
||
47 | $this->getTimestamp() |
||
48 | )); |
||
49 | } |
||
50 | |||
51 | /** |
||
52 | * @return string |
||
53 | */ |
||
54 | private function getTimestamp() |
||
57 | } |
||
58 | } |
||
59 |