diff --git a/database/migrations/create_api_logs_table.php.stub b/database/migrations/create_api_logs_table.php.stub index d9c1cf9..511f720 100644 --- a/database/migrations/create_api_logs_table.php.stub +++ b/database/migrations/create_api_logs_table.php.stub @@ -20,8 +20,8 @@ class CreateApiLogsTable extends Migration $table->string('method'); $table->ipAddress('ip'); $table->json('request_data'); - $table->json('response_data')->nullable(); - $table->foreignId('user_id')->nullable()->constrained()->cascadeOnDelete()->cascadeOnUpdate(); + $table->json('response_data'); + $table->foreignId('user_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate(); $table->timestamps(); }); } diff --git a/src/Http/Middleware/LogApiRequest.php b/src/Http/Middleware/LogApiRequest.php index 4013662..995600e 100644 --- a/src/Http/Middleware/LogApiRequest.php +++ b/src/Http/Middleware/LogApiRequest.php @@ -4,17 +4,18 @@ use Closure; use CodeTech\ApiLogs\Models\ApiLog; +use Illuminate\Http\Request; class LogApiRequest { /** * Handle an incoming request. * - * @param $request + * @param Request $request * @param Closure $next * @return mixed */ - public function handle($request, Closure $next) + public function handle(Request $request, Closure $next) { $request->start = microtime(true); @@ -24,10 +25,11 @@ public function handle($request, Closure $next) /** * Handle tasks after the response has been sent to the browser. * - * @param $request + * @param Request $request * @param $response + * @return void */ - public function terminate($request, $response) + public function terminate(Request $request, $response): void { $request->end = microtime(true); @@ -37,8 +39,9 @@ public function terminate($request, $response) 'method' => $request->getMethod(), 'ip' => $request->getClientIp(), 'request_data' => $request->all(), + 'request_headers' => $request->headers->all(), 'response_data' => json_decode($response->getContent()), - 'user_id' => auth()->check() ? auth()->id() : null, + 'user_id' => auth()->id(), ]; ApiLog::create($data); diff --git a/src/Models/ApiLog.php b/src/Models/ApiLog.php index d23b5da..db944a1 100644 --- a/src/Models/ApiLog.php +++ b/src/Models/ApiLog.php @@ -16,6 +16,7 @@ class ApiLog extends Model 'method', 'ip', 'request_data', + 'request_headers', 'response_data', 'user_id', ]; @@ -25,6 +26,7 @@ class ApiLog extends Model */ protected $casts = [ 'request_data' => 'json', + 'request_headers' => 'json', 'response_data' => 'json', 'created_at' => 'datetime:d/m/Y H:i', 'updated_at' => 'datetime:d/m/Y H:i',