Root Zanli
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
o5t6x7pgljbm
/
public_html
/
admin
/
app
/
Http
/
Middleware
/
Filename :
LogRequestMiddleware.php
back
Copy
<?php namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Carbon\Carbon; use Illuminate\Support\Facades\Route; class LogRequestMiddleware { public function handle(Request $request, Closure $next) { // Get request data $method = $request->method(); // $url = $request->fullUrl(); $url = Route::currentRouteName() ?: Route::current()->uri(); $activity = $this->getActivityDescription($request); // Custom method to generate activity description $user_id = auth()->check() ? auth()->id() : null; // If user is authenticated $video_id = $request->input('video_id', null); // If video_id exists in request $queryParams = json_encode($request->all()); // Convert query params to JSON $clientIp = $request->ip(); // Get public IP // Log start time $requestReceivedTime = Carbon::now(); // Proceed with the request $response = $next($request); // Log end time and calculate request time $requestEndTime = Carbon::now(); $requestTimeTaken = $requestEndTime->diffInMilliseconds($requestReceivedTime); // Insert log entry into database DB::table('request_log')->insert([ 'request_method' => $method, 'request_url' => $url, 'activity' => $activity, 'user_id' => $user_id, 'query_params_json' => $queryParams, 'client_ip' => $clientIp, 'request_received_time' => $requestReceivedTime, 'request_end_time' => $requestEndTime, 'request_time_taken_ms' => $requestTimeTaken, 'created_at' => now(), 'updated_at' => now(), ]); return $response; } // Custom method to generate activity description based on request private function getActivityDescription(Request $request) { return 'General API request'; } }