Files
scrum-poker-internal/routes/room.php
T

66 lines
2.8 KiB
PHP

<?php
use App\Http\Controllers\EmbeddedLogoutController;
use App\Http\Controllers\EmbeddedRoomController;
use App\Http\Controllers\FavoriteRoomController;
use App\Http\Controllers\RoomController;
use App\Http\Controllers\RoomEmoteController;
use App\Http\Controllers\RoomJoinController;
use App\Http\Controllers\RoomLifecycleController;
use App\Http\Controllers\RoomPlayerController;
use App\Http\Controllers\RoomPlayerKickController;
use App\Http\Controllers\RoomSettingsController;
use App\Http\Controllers\RoundController;
use App\Http\Controllers\VoteController;
use App\Models\Room;
use Illuminate\Support\Facades\Route;
Route::bind(
'room',
fn (string $value): Room => Room::withTrashed()->findOrFail($value),
);
Route::get('/room', [RoomController::class, 'create'])->name('room.create');
Route::get('/room/join', RoomJoinController::class)->name('room.join');
Route::post('room/join', [RoomPlayerController::class, 'join'])->name('room.code');
Route::post('/room', [RoomController::class, 'store'])->name('room.store');
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('/embedded/scrum-poker', EmbeddedRoomController::class)
->name('embedded.room');
});
Route::post('/embedded/scrum-poker/logout', EmbeddedLogoutController::class)
->middleware('auth')
->name('embedded.logout');
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('/rooms/{room}/settings', [RoomSettingsController::class, 'edit'])
->name('room.settings.edit');
Route::patch('/rooms/{room}/settings', [RoomSettingsController::class, 'update'])
->name('room.settings.update');
Route::post('/rooms/{room}/reopen', [RoomLifecycleController::class, 'reopen'])
->name('room.reopen');
Route::delete('/rooms/{room}', [RoomLifecycleController::class, 'destroy'])
->name('room.destroy');
Route::post('/rooms/{room}/favorite', FavoriteRoomController::class)
->name('room.favorite');
});
Route::delete('/rooms/{room}/players/{player}', RoomPlayerKickController::class)
->name('room.player.destroy');
Route::middleware('room.player')->group(function () {
Route::get('/rooms/{room}', [RoomController::class, 'show'])->name('room.show');
Route::post('/rooms/{room}/votes', [VoteController::class, 'store'])
->name('room.vote.store');
Route::post('/rooms/{room}/emotes/paper-ball', [RoomEmoteController::class, 'store'])
->name('room.emote.paper-ball.store');
Route::post('/rooms/{room}/reveal', [RoundController::class, 'reveal'])
->name('room.reveal');
Route::post('/rooms/{room}/reset', [RoundController::class, 'reset'])
->name('room.reset');
Route::post('/rooms/{room}/next-round', [RoundController::class, 'nextRound'])
->name('room.next-round');
});