Added ability to add multiple plays at once to db

This commit is contained in:
Yarne Coppens 2024-08-12 20:39:25 +02:00
parent 9ef700aef8
commit 36330749c7
3 changed files with 13 additions and 8 deletions

View file

@ -17,7 +17,7 @@ def get_db_session():
@asynccontextmanager @asynccontextmanager
async def lifespan(app: FastAPI): async def lifespan(app: FastAPI):
# Startup # Startup
#data_connection.delete_database() data_connection.delete_database()
data_connection.create_db_and_tables() data_connection.create_db_and_tables()
yield yield
# Shutdown # Shutdown

View file

@ -87,8 +87,7 @@ def get_plays(session: Session) -> list[play_classes.Play]:
if len(plays_from_db) == 0: if len(plays_from_db) == 0:
all_plays = bgg_connection.get_plays() all_plays = bgg_connection.get_plays()
for play in all_plays: db_connection.add_multiple_plays(session, all_plays)
db_connection.add_play(session, play)
plays_from_db = db_connection.get_plays(session) plays_from_db = db_connection.get_plays(session)
@ -107,8 +106,7 @@ def get_players_from_play(session: Session, play_id: int) -> list[play_classes.P
if len(players_from_db) == 0: if len(players_from_db) == 0:
all_plays = bgg_connection.get_plays() all_plays = bgg_connection.get_plays()
for play in all_plays: db_connection.add_multiple_plays(session, all_plays)
db_connection.add_play(session, play)
players_from_db = db_connection.get_players_from_play(session, play_id) players_from_db = db_connection.get_players_from_play(session, play_id)

View file

@ -60,8 +60,7 @@ def get_boardgame(session: Session, boardgame_type: SQLModel, boardgame_id: int)
print(boardgame) print(boardgame)
return boardgame return boardgame
def get_multiple_boardgames(session: Session, boardgame_type: SQLModel, boardgame_ids: list[int]) -> Union[ def get_multiple_boardgames(session: Session, boardgame_type: SQLModel, boardgame_ids: list[int]) -> Union[
list[boardgame_classes.BoardGame], list[boardgame_classes.BoardGameExpansion], list[boardgame_classes.BoardGame], list[boardgame_classes.BoardGameExpansion],
list[boardgame_classes.OwnedBoardGame], list[boardgame_classes.OwnedBoardGameExpansion], list[boardgame_classes.OwnedBoardGame], list[boardgame_classes.OwnedBoardGameExpansion],
@ -74,7 +73,6 @@ def get_multiple_boardgames(session: Session, boardgame_type: SQLModel, boardgam
return boardgames return boardgames
def get_all_boardgames(session: Session, boardgame_type: SQLModel) -> Union[ def get_all_boardgames(session: Session, boardgame_type: SQLModel) -> Union[
list[boardgame_classes.BoardGame], list[boardgame_classes.BoardGameExpansion], list[boardgame_classes.BoardGame], list[boardgame_classes.BoardGameExpansion],
list[boardgame_classes.OwnedBoardGame], list[boardgame_classes.OwnedBoardGameExpansion], list[boardgame_classes.OwnedBoardGame], list[boardgame_classes.OwnedBoardGameExpansion],
@ -95,6 +93,15 @@ def add_play(session: Session, play: play_classes.Play):
session.commit() session.commit()
session.refresh(play) session.refresh(play)
def add_multiple_plays(session: Session, play_list: list[play_classes.Play]):
for play in play_list:
is_play_present = len(session.exec(select(play_classes.Play).where(play_classes.Play.id == play.id)).all()) != 0
if not is_play_present:
session.add(play)
session.commit()
def get_plays(session: Session) -> list[play_classes.Play]: def get_plays(session: Session) -> list[play_classes.Play]:
statement = select(play_classes.Play) statement = select(play_classes.Play)