diff --git a/app/routers/decks.py b/app/routers/decks.py index 66e6a17..6f33d10 100644 --- a/app/routers/decks.py +++ b/app/routers/decks.py @@ -9,9 +9,16 @@ from ..sql.database import get_db from .players import list_players api_router = APIRouter(prefix="/deck", tags=["deck"]) -html_router = APIRouter(prefix="/deck", include_in_schema=False) +html_router = APIRouter( + prefix="/deck", + include_in_schema=False, + default_response_class=HTMLResponse) +######## +# API Routes +######## + @api_router.post("/", response_model=schemas.Deck, status_code=201) def create_deck(deck: schemas.DeckCreate, db: Session = Depends(get_db)): db_player = crud.get_player_by_id(db, deck.owner_id) @@ -42,7 +49,11 @@ def delete_deck(deck_id: str, db=Depends(get_db)): crud.delete_deck_by_id(db, int(deck_id)) -@html_router.get("/create", response_class=HTMLResponse) +######## +# HTML Routes +######## + +@html_router.get("/create") def deck_create_html(request: Request, db=Depends(get_db)): players = list_players(db=db) return jinja_templates.TemplateResponse( @@ -51,7 +62,7 @@ def deck_create_html(request: Request, db=Depends(get_db)): # TODO - pagination -@html_router.get("/list", response_class=HTMLResponse) +@html_router.get("/list") def decks_html(request: Request, db=Depends(get_db)): decks = list_decks(db=db) return jinja_templates.TemplateResponse( @@ -60,7 +71,7 @@ def decks_html(request: Request, db=Depends(get_db)): # This must be after the static-path routes, lest it take priority over them -@html_router.get("/{deck_id}", response_class=HTMLResponse) +@html_router.get("/{deck_id}") def deck_html(request: Request, deck_id: str, db=Depends(get_db)): deck_info = read_deck(deck_id, db) return jinja_templates.TemplateResponse( diff --git a/app/routers/games.py b/app/routers/games.py index 54bd565..8268dee 100644 --- a/app/routers/games.py +++ b/app/routers/games.py @@ -10,7 +10,14 @@ from ..sql import crud, schemas from ..sql.database import get_db api_router = APIRouter(prefix="/game", tags=["game"]) -html_router = APIRouter(prefix="/game", include_in_schema=False) +html_router = APIRouter( + prefix="/game", + include_in_schema=False, + default_response_class=HTMLResponse) + +######## +# API Routes +######## @api_router.post("/", response_model=schemas.Game, status_code=201) def create_game(game: schemas.GameCreate, db: Session = Depends(get_db)): @@ -35,6 +42,10 @@ def delete_game(game_id: str, db=Depends(get_db)): crud.delete_game_by_id(db, int(game_id)) +######## +# HTML Routes +######## + @html_router.get("/create", response_class=HTMLResponse) def game_create_html(request: Request, db=Depends(get_db)): players = list_players(db=db) @@ -55,7 +66,7 @@ def game_create_html(request: Request, db=Depends(get_db)): # TODO - pagination -@html_router.get("/list", response_class=HTMLResponse) +@html_router.get("/list") def games_html(request: Request, db=Depends(get_db)): games = list_games(db=db) return jinja_templates.TemplateResponse( @@ -64,7 +75,7 @@ def games_html(request: Request, db=Depends(get_db)): # This must be after the static-path routes, lest it take priority over them -@html_router.get("/{game_id}", response_class=HTMLResponse) +@html_router.get("/{game_id}") def game_html(request: Request, game_id: str, db=Depends(get_db)): game_info = read_game(game_id, db) return jinja_templates.TemplateResponse( diff --git a/app/routers/players.py b/app/routers/players.py index 1e5068d..2ccae8a 100644 --- a/app/routers/players.py +++ b/app/routers/players.py @@ -7,7 +7,14 @@ from ..sql import crud, schemas from ..sql.database import get_db api_router = APIRouter(prefix="/player", tags=["player"]) -html_router = APIRouter(prefix="/player", include_in_schema=False) +html_router = APIRouter( + prefix="/player", + include_in_schema=False, + default_response_class=HTMLResponse) + +######## +# API Routes +######## @api_router.post("/", response_model=schemas.Player, status_code=201) @@ -33,13 +40,23 @@ def delete_player(player_id: str, db=Depends(get_db)): crud.delete_player_by_id(db, int(player_id)) -@html_router.get("/create", response_class=HTMLResponse) +######## +# HTML Routes +######## + +@html_router.get("/create") def player_create_html(request: Request, db=Depends(get_db)): return jinja_templates.TemplateResponse(request, "players/create.html") +@html_router.get("/list", response_class=HTMLResponse) +def player_list_html(request: Request, db=Depends(get_db)): + players = list_players(db=db) + return jinja_templates.TemplateResponse( + request, "players/list.html", {"players": players}) + # This must be after the static-path routes, lest it take priority over them -@html_router.get("/{player_id}", response_class=HTMLResponse) +@html_router.get("/{player_id}") def player_html(request: Request, player_id: str, db=Depends(get_db)): player_info = read_player(player_id, db) return jinja_templates.TemplateResponse( diff --git a/app/templates/players/list.html b/app/templates/players/list.html new file mode 100644 index 0000000..2de9a08 --- /dev/null +++ b/app/templates/players/list.html @@ -0,0 +1,20 @@ + + +
+ +Name | +
---|
{{ player.name }} | +