SyntaxSquad/DADProject#15 feat: Initial Idea
This commit is contained in:
+25
-13
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user