53 lines
2.4 KiB
PHP
53 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace Modules\Taxi\App\Http\Middleware;
|
|
|
|
use Closure;
|
|
use Illuminate\Http\Request;
|
|
|
|
/**
|
|
* Блокировщик работы с заявками на такси в случае слишком ранееЙ, слишком поздней работы с ресурсом
|
|
*
|
|
* Решил блочить рабоут приложения в части работы с заявками в очень ранее или очень позднее время. Это связано с нежеланием валидировать при создании или редактировании заявки передаваемый временной промежуток. Например, если текущее время 22:15, а заявка созается на 22:00.
|
|
*/
|
|
class CheckTimeRqstAvailability
|
|
{
|
|
public function handle(Request $request, Closure $next)
|
|
{
|
|
#Гаврилов
|
|
//ПОМЕНЯЙ НА 21 НА РЕЛИЗЕ
|
|
$maxRqstTime = 23;
|
|
$minRqstTime = 7;
|
|
$timezone = new \DateTimeZone('Europe/Moscow');
|
|
$timeNow = (new \DateTime())->setTimezone($timezone);
|
|
$timeMax = (new \DateTime())->setTimezone($timezone);
|
|
$timeMin = (new \DateTime())->setTimezone($timezone);
|
|
$timeMax->setTime($maxRqstTime, 00, 00);
|
|
$timeMin->setTime($minRqstTime, 00, 00);
|
|
|
|
#Гаврилов
|
|
//ПОМЕНЯЙ
|
|
if (!($timeNow > $timeMin && $timeNow < $timeMax)) {
|
|
//if (!($timeNow > $timeMin && $timeNow > $timeMax)) {
|
|
$errMsg = "Работа с заявками на такси заблокирована с $maxRqstTime:00 по 0$minRqstTime:00";
|
|
#Гаврилов
|
|
//ПОДУМАТЬ КАКОЙ КОД ЛУЧШЕ ВЕРНУТЬ
|
|
//Метод expectsJson позволяет определить вызывается ли api роут через ajax/fetch, либо web route.
|
|
if ($request->expectsJson()) {
|
|
return response()->json([
|
|
'errorMsg' => $errMsg
|
|
], 400);
|
|
} else {
|
|
#Гаврилов
|
|
//ПРОВЕРЬ КОГДА РЕАЛИЗУЕШЬ ОПОВЕЩЕНИЯ
|
|
return redirect('/taxi/home')->with([
|
|
'notification' => $errMsg,
|
|
'notification_err' => true
|
|
]);
|
|
}
|
|
} else {
|
|
return $next($request);
|
|
}
|
|
}
|
|
}
|