bgg_api/src/main.py

41 lines
1.3 KiB
Python
Raw Normal View History

2024-07-24 22:53:56 +02:00
from fastapi import FastAPI
from contextlib import asynccontextmanager
2024-07-24 22:53:56 +02:00
from src.classes import boardgame_classes, play_classes
from src.modules import data_connection
@asynccontextmanager
async def lifespan(app: FastAPI):
# Startup
data_connection.create_db_and_tables()
yield
# Shutdown
2024-07-24 22:53:56 +02:00
app = FastAPI(lifespan=lifespan)
2024-07-24 22:53:56 +02:00
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/boardgame/{boardgame_id}", response_model=boardgame_classes.BoardGame)
2024-07-25 19:38:20 +02:00
def get_boardgame_by_id(boardgame_id: int):
requested_boardgame: boardgame_classes.BoardGame = data_connection.get_boardgame(boardgame_id)
return requested_boardgame
@app.get("/owned", response_model=list[boardgame_classes.OwnedBoardGame])
def get_owned_collection():
requested_collection: list[boardgame_classes.OwnedBoardGame] = data_connection.get_user_owned_collection()
2024-08-01 10:35:51 +02:00
return requested_collection
@app.get("/wishlist", response_model=list[boardgame_classes.WishlistBoardGame])
2024-08-01 10:35:51 +02:00
def get_wishlist_collection():
requested_collection: list[boardgame_classes.WishlistBoardGame] = data_connection.get_user_wishlist_collection()
return requested_collection
@app.get("/plays", response_model=list[play_classes.Play])
def get_plays():
requested_plays: list[play_classes.Play] = data_connection.get_plays()
return requested_plays