• File: LogUserActivity.php
  • Full Path: /var/www/imaliapi/app/Http/Middleware/LogUserActivity.php
  • Date Modified: 11/26/2025 7:31 PM
  • File size: 2.23 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

namespace App\Http\Middleware;

use App\Classes\Auth;
use App\UserActivityLog;
use Closure;
use Illuminate\Http\Request;

class LogUserActivity
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse)  $next
     * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
     */
    public function handle(Request $request, Closure $next)
    {
        $response = $next($request);

        try {
            if (auth()->check()) {
                UserActivityLog::create([
                    'user_id' => auth()->user()->id,
                    'route_name' => $request->path(),
                    'method' => $request->method(),
                    'ip_address' => $request->ip(),
                    'user_agent' => $request->header('User-Agent'),
                    'request_data' => json_encode($request->except(['password', 'token'])), // evita dados sensíveis
                ]);

                // UserActivityLog::create([
                //     'user_id' => auth()->id(),
                //     'user_name' => auth()->user()->name,
                //     'profile' => auth()->user()->profile,
                //     'route_name' => $request->path(),
                //     'method' => $request->method(),
                //     'ip_address' => $request->ip(),
                //     'user_agent' => $request->header('User-Agent'),
                //     'request_data' => json_encode($request->except(['password', 'token'])),
                //     'description' => 'Ação executada: ' . $request->path(),
                //     'status' => $response->status() === 200 ? 'SUCCESS' : 'ERROR',
                // ]);


                // quem esta fazer - User ✅
                // o que esta fazer (Transferencia, Consulta)
                // onde esta fazer (rota)
                // quando e que esta fazer (data da operacao)
            }
        } catch (\Exception $e) {
            // evita crash se der erro ao registrar log
            return response()->json(['message' => 'Houve um erro durante o registo do Log', $e->getMessage()], 500);
        }

        return $response;
    }
}