Files
scrum-poker-internal/app/Http/Controllers/RoundController.php
T
2026-08-20 23:00:47 +02:00

53 lines
1.2 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Player;
use App\Models\Room;
use App\Services\Rooms\RoundService;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
class RoundController extends Controller
{
public function __construct(
private readonly RoundService $rounds,
) {}
public function reset(Request $request, Room $room): RedirectResponse
{
$this->ensureModerator($request, $room);
$this->rounds->reset($room);
return back();
}
public function reveal(Request $request, Room $room): RedirectResponse
{
$this->ensureModerator($request, $room);
$this->rounds->reveal($room);
return back();
}
public function nextRound(Request $request, Room $room): RedirectResponse
{
$this->ensureModerator($request, $room);
$this->rounds->startNext($room);
return back();
}
private function ensureModerator(Request $request, Room $room): void
{
$player = $request->attributes->get('currentPlayer');
abort_unless(
$player instanceof Player
&& $player->room_id === $room->id
&& $player->is_moderator,
403,
);
}
}