ldc-gen-game-web/app/Http/Middleware/GameCheckDate.php

48 lines
1.3 KiB
PHP
Raw Normal View History

<?php
namespace App\Http\Middleware;
use App\Models\Settings;
use Closure;
2023-08-21 10:22:07 +02:00
use Illuminate\Http\Request;
class GameCheckDate
{
/**
* Handle an incoming request.
*
2022-08-11 10:03:16 +02:00
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
2023-08-21 10:22:07 +02:00
public function handle(Request $request, Closure $next)
{
2022-01-11 10:25:23 +01:00
/** @var \App\Models\Settings $settings */
$settings = app(Settings::class);
2023-12-01 15:21:25 +01:00
// ? Le jeu à démarré ?
if ($settings->start_date->gte(now())) {
// ? Le teaser est activé ?
if ($settings->activated_teaser === true) {
return redirect()->route('fo.teaser');
2021-08-18 17:08:02 +02:00
}
2023-12-01 15:21:25 +01:00
// * Redirection
return redirect($settings->redirect_close);
}
2023-12-01 15:21:25 +01:00
// ? Le jeu est terminé ?
2020-11-05 13:08:41 +01:00
if ($settings->end_date < now()) {
2023-12-01 15:21:25 +01:00
// ? La page de fermeture est activée et sa date d'expiration n'est pas dépassée ?
if ($settings->activated_close_page === true && $settings->close_page_active_date->gt(now())) {
return redirect()->route('fo.end');
2021-08-18 17:08:02 +02:00
}
2023-12-01 15:21:25 +01:00
// * Redirection
2020-11-05 13:08:41 +01:00
return redirect($settings->redirect_close);
}
return $next($request);
}
}