PixelPlacerBot/routes/web.php
2024-07-28 18:06:05 -04:00

72 lines
3.2 KiB
PHP
Executable File

<?php
use App\Http\Controllers\ProfileController;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\TwitchController;
use App\Http\Controllers\GameSessionController;
use App\Http\Controllers\PaletteController;
use App\Http\Controllers\CommandController;
use App\Http\Controllers\CurrentStateController;
use App\Http\Controllers\AdministrationController;
// Administration routes
Route::get('/administration', [AdministrationController::class, 'index'])->name('administration.index');
Route::post('/administration/reset-board', [AdministrationController::class, 'resetBoard'])->name('administration.resetBoard');
Route::post('/administration/change-palette', [AdministrationController::class, 'changePalette'])->name('administration.changePalette');
Route::post('/administration/create-game', [AdministrationController::class, 'createGame'])->name('administration.createGame');
// Command parsing route
Route::post('/command/parse', [CommandController::class, 'parseChatMessage']);
// Current state route
Route::get('/api/current-state', [CurrentStateController::class, 'index']);
// Palette Editor routes
Route::get('/palette-editor', [PaletteController::class, 'index']);
Route::post('/palette-editor', [PaletteController::class, 'store']);
Route::post('/palette-editor/{palette}/rename', [PaletteController::class, 'rename']);
Route::delete('/palette-editor/{palette}', [PaletteController::class, 'delete']);
Route::get('/palette-editor/{palette}/colors', [PaletteController::class, 'getColors']);
Route::post('/palette-editor/{palette}/colors', [PaletteController::class, 'addColor']);
Route::put('/palette-editor/{palette}/colors/{color}', [PaletteController::class, 'updateColor']);
Route::delete('/palette-editor/{palette}/colors/{color}', [PaletteController::class, 'deleteColor']);
Route::get('/palette-editor/{palette}/export', [PaletteController::class, 'export']);
Route::post('/palette-editor/import', [PaletteController::class, 'import']);
// Twitch chat message parsing route
Route::post('/twitch/parse', [TwitchController::class, 'parseChatMessage']);
// Game session routes
Route::post('/game-session/start', [GameSessionController::class, 'start']);
Route::post('/game-session/end/{id}', [GameSessionController::class, 'end']);
Route::get('/game-session/current', [GameSessionController::class, 'current']);
// Static views
Route::get('/', function () {
return view('welcome');
});
Route::get('/prototype', function () {
return view('prototype');
});
Route::get('/dashboard', function () {
return view('dashboard');
});
Route::get('/testing', function () {
return view('testing');
})->middleware(['auth', 'verified'])->name('testing');
// Authenticated user profile routes
Route::middleware('auth')->group(function () {
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
Route::get('/register', [ProfileController::class, 'register'])->name('register');
Route::post('/register', [ProfileController::class, 'store'])->name('register.store');
});
require __DIR__.'/auth.php';