Files
portal-api/app/Http/Middleware/StaffCheck.php
T
2025-07-24 16:18:27 +07:00

57 lines
1.6 KiB
PHP

<?php
namespace App\Http\Middleware;
use App\Models\Staff;
use App\Repositories\Staff\StaffRepositoryInterface;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class StaffCheck
{
public function __construct(
public StaffRepositoryInterface $staffRepository
) {}
/**
* 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)
{
$session_id = $request->session()->getId();
$auth_id = auth()->user()->id;
$time = 60;
// $visited = Staff::where(function ($query) use ($auth_id,$session_id) {
// $query->where('sessions_id', $session_id);
// $query->where('user_id', $auth_id);
// })->first();
$visited = $this->staffRepository->getFirstBy([
'sessions_id' => $session_id,
'user_id' => $auth_id
]);
if ($visited) {
$visited->last_visited = time();
$visited->save();
} else {
$this->staffRepository->create(
[
'sessions_id' => $session_id,
'user_id' => $auth_id,
'last_visited' => time()
]
);
}
$this->staffRepository->deleteRawTime($time);
return $next($request);
}
}