diff --git a/endpoints/sport.post.py b/endpoints/sport.post.py new file mode 100644 index 0000000..5979ceb --- /dev/null +++ b/endpoints/sport.post.py @@ -0,0 +1,49 @@ +from fastapi import APIRouter, HTTPException +import uuid + +games = [] # In-memory storage + +router = APIRouter() + +@router.post("/sport") +async def save_game(game: Game): + """Save a new game to the database""" + if request.method != "POST": + raise HTTPException(status_code=405, detail="Method Not Allowed") + + game.id = str(uuid.uuid4()) + games.append(game.dict()) + + return { + "method": "POST", + "_verb": "post", + "message": "Game saved successfully", + "game_id": game.id + } + +@router.get("/sport") +async def get_games(): + """Fetch all games from the database""" + return { + "method": "GET", + "_verb": "get", + "games": [game for game in games] + } +``` + +This code provides: + +1. A `Game` Pydantic model to define the schema for game data. +2. A `@router.post("/sport")` endpoint to save a new game to the in-memory `games` list. +3. A `@router.get("/sport")` endpoint to fetch all games from the `games` list. + +The `save_game` endpoint: +- Checks if the request method is POST, raising 405 Method Not Allowed if not. +- Generates a new UUID as the game id. +- Appends the game data to the `games` list. +- Returns a success response with the saved game id. + +The `get_games` endpoint: +- Returns all games in the `games` list. + +Note: This is an in-memory implementation for demo purposes. In a real application, you would use a persistent database instead of a Python list. \ No newline at end of file