build the backend structure and the fe for the Game

This commit is contained in:
2026-08-15 22:37:53 +02:00
parent c5fd3f9d79
commit 4340ca9e12
37 changed files with 1611 additions and 56 deletions
@@ -0,0 +1,50 @@
<?php
namespace App\Http\Middleware;
use App\Models\Room;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class EnsureRoomParticipant
{
/**
* Handle an incoming request.
*
* @param Closure(Request): (Response) $next
*/
public function handle(Request $request, Closure $next): Response
{
$room = $request->route('room');
if (! $room instanceof Room) {
abort(404);
}
$sessionKey = "room_players.{$room->id}";
$playerId = $request->session()->get($sessionKey);
if (! $playerId) {
return to_route('room.join', [
'join_code' => $room->join_code,
])->withErrors([
'join_code' => 'Du musst diesen Raum erst beitreten.',
]);
}
$player = $room->players()->find($playerId);
if (! $player) {
$request->session()->forget($sessionKey);
return to_route('room.join', [
'join_code' => $room->join_code,
]);
}
$request->attributes->set('currentPlayer', $player);
return $next($request);
}
}