This commit is contained in:
AfonsoCMSousa
2026-01-02 00:39:39 +00:00
parent bcdf542606
commit e84dd993af
11 changed files with 539 additions and 37 deletions
+25 -13
View File
@@ -46,24 +46,36 @@ Route::prefix('v1')->group(function () {
Route::get('/{user}/transactions', [UserController::class, 'getTransactions']);
});
// Game Resources
Route::prefix('games')->group(function () {
Route::apiResource('/', GameController::class)->parameters([
'' => 'game',
]);
Route::post('/{game}/join', [GameController::class, 'join']);
// Host a new multiplayer game
Route::post('/host', function (\Illuminate\Http\Request $request) {
$request->validate([
'type' => 'required|in:3,9'
]);
$game = \App\Models\Game::create([
'type' => $request->type,
'status' => 'Pending',
'player1_user_id' => $request->user()->id,
'player2_user_id' => 1, // Ghost player
'began_at' => now(),
]);
return response()->json($game);
});
Route::get('/', [GameController::class, 'index']);
Route::get('/{game}', [GameController::class, 'show']);
Route::post('/', [GameController::class, 'store']);
Route::put('/{game}', [GameController::class, 'update']);
Route::delete('/{game}', [GameController::class, 'destroy']);
Route::post('/{game}/resign', [GameController::class, 'resign']);
Route::post('/{game}/join', [GameController::class, 'join']);
});
// Match Resources
Route::prefix('matches')->group(function () {
Route::apiResource('/', MatchController::class)->parameters([
'' => 'match',
]);
Route::post('/{match}/join', [
MatchController::class,
'join',
]);
Route::apiResource('/', MatchController::class)->parameters(['' => 'match']);
Route::post('/{match}/join', [MatchController::class, 'join']);
});
// Admin Routes