Files
zyt/server/app/adminapi/http/middleware/DoctorWebConsultationMiddleware.php
2026-10-22 11:02:57 +08:00

35 lines
969 B
PHP

<?php
declare(strict_types=1);
namespace app\adminapi\http\middleware;
use app\adminapi\service\DoctorWebConsultationPolicy;
use app\common\service\JsonService;
final class DoctorWebConsultationMiddleware
{
public function __construct(private ?array $configuration = null)
{
}
public function handle($request, \Closure $next)
{
if (DoctorWebConsultationPolicy::blocksRequest(
(array) ($request->adminInfo ?? []),
(string) $request->controller(),
(string) $request->action(),
(array) $request->header(),
null,
$this->configuration
)) {
return JsonService::fail(DoctorWebConsultationPolicy::message($this->configuration), [
'reason' => 'doctor_web_consultation_expired',
'cutoff_at' => DoctorWebConsultationPolicy::cutoffAt($this->configuration),
]);
}
return $next($request);
}
}