/ app / Http / Middleware / AuditMiddleware.php
AuditMiddleware.php
 1  <?php
 2  
 3  namespace App\Http\Middleware;
 4  
 5  use App\Models\AuditLog;
 6  use Carbon\Carbon;
 7  use Closure;
 8  use Illuminate\Http\Request;
 9  
10  class AuditMiddleware
11  {
12      /**
13       * Handle an incoming request.
14       *
15       * @param  \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse)  $next
16       * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
17       */
18      public function handle(Request $request, Closure $next)
19      {
20          $response = $next($request);
21  
22          if (auth()->check()) {
23              $fingerprint = $request->input('fingerprint');
24              $updates = $request->input('updates');
25              $serverMemo = $request->input('serverMemo');
26  
27              $log = [
28                  'created_at' => Carbon::now(),
29                  'ip' => $request->ip(),
30                  'user_id' => auth()->user()->id,
31                  'method' => $request->getMethod(),
32                  'route' => $request->route()->getName(),
33              ];
34  
35              if ($request->input('updates') && isset($request->input('updates')[0]['payload']['event'])) {
36                  $log['event'] = $updates[0]['payload']['event'];
37                  $log['payload'] = $updates[0]['payload'];
38                  $log['route'] =
39                      $updates[0]['payload']['params']
40                      ? $updates[0]['payload']['params'][1] ?? null // falta el primero
41                      : (isset($serverMemo['data']['component'])
42                          ? $serverMemo['data']['component']
43                          : $fingerprint['name']);
44              }
45  
46              if ($log['route'] != 'livewire.message' || (isset($log['event']) && $log['event'] != 'refresh')) {
47                  AuditLog::create($log);
48              }
49          }
50  
51          return $response;
52      }
53  }