57 lines
1.6 KiB
PHP
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);
|
|
}
|
|
}
|