diff --git a/src/modules/data_connection.py b/src/modules/data_connection.py index 9b17826..3a4ae7b 100644 --- a/src/modules/data_connection.py +++ b/src/modules/data_connection.py @@ -10,8 +10,12 @@ def get_boardgame(boardgame_id: int) -> boardgame_classes.BoardGame: def get_user_owned_collection() -> list[boardgame_classes.BoardGame]: - - return bgg_connection.get_user_owned_collection() + owned_boardgames_from_db = db_connection.get_all_owned_boardgames() + + if len(owned_boardgames_from_db) != 0: + return owned_boardgames_from_db + else: + return bgg_connection.get_user_owned_collection() def get_user_wishlist_collection() -> list[boardgame_classes.BoardGame]: diff --git a/src/modules/db_connection.py b/src/modules/db_connection.py index 64fe11f..71d5019 100644 --- a/src/modules/db_connection.py +++ b/src/modules/db_connection.py @@ -1,6 +1,9 @@ -from sqlmodel import create_engine, SQLModel +from sqlmodel import create_engine, SQLModel, Session, select from src.config import definitions import os +from typing import Union + +from src.classes import boardgame_classes sqlite_url = definitions.SQLITE_URL @@ -8,6 +11,29 @@ sqlite_url = definitions.SQLITE_URL connect_args = {"check_same_thread": False} engine = create_engine(sqlite_url, echo=True, connect_args=connect_args) +def add_boardgame(boardgame: Union[ + boardgame_classes.BoardGame, boardgame_classes.BoardGameExpansion, + boardgame_classes.OwnedBoardGame, boardgame_classes.OwnedBoardGameExpansion, + boardgame_classes.WishlistBoardGame, boardgame_classes.WishlistBoardGameExpansion]): + + session = Session(engine) + + session.add(boardgame) + + session.commit() + +def get_all_owned_boardgames(): + with Session(engine) as session: + statement = select(boardgame_classes.OwnedBoardGame) + results = session.exec(statement) + + boardgame_list = [] + + for boardgame in results: + boardgame_list.append(boardgame) + + return boardgame_list + def delete_database(): os.remove(definitions.DATABASE_FILE_PATH)