From a34b482b958446910a1350d1b08d43e9fc0c2e1a Mon Sep 17 00:00:00 2001 From: Yarne Coppens Date: Thu, 8 Aug 2024 18:41:18 +0200 Subject: [PATCH] Added more typing --- src/main.py | 10 ++++------ src/modules/bgg_connection.py | 3 ++- src/modules/data_connection.py | 16 +++++++++++----- 3 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/main.py b/src/main.py index 9edf181..89ce92c 100644 --- a/src/main.py +++ b/src/main.py @@ -25,16 +25,14 @@ 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=Union[list[boardgame_classes.OwnedBoardGame], list[boardgame_classes.OwnedBoardGameExpansion]]) +@app.get("/owned", response_model=list[Union[boardgame_classes.OwnedBoardGame, boardgame_classes.OwnedBoardGameExpansion]]) def get_owned_collection(): - requested_collection: list[boardgame_classes.OwnedBoardGame] = data_connection.get_user_owned_collection() - return requested_collection + return data_connection.get_user_owned_collection() -@app.get("/wishlist", response_model=Union[list[boardgame_classes.WishlistBoardGame], list[boardgame_classes.WishlistBoardGameExpansion]]) +@app.get("/wishlist", response_model=list[Union[boardgame_classes.WishlistBoardGame, boardgame_classes.WishlistBoardGameExpansion]]) def get_wishlist_collection(): - requested_collection: list[boardgame_classes.WishlistBoardGame] = data_connection.get_user_wishlist_collection() - return requested_collection + return data_connection.get_user_wishlist_collection() diff --git a/src/modules/bgg_connection.py b/src/modules/bgg_connection.py index 277e8b2..9154ddf 100644 --- a/src/modules/bgg_connection.py +++ b/src/modules/bgg_connection.py @@ -5,6 +5,7 @@ import requests from datetime import datetime import time import math +from typing import Union from src.classes import boardgame_classes, play_classes from src.modules import auth_manager @@ -96,7 +97,7 @@ def convert_xml_to_boardgame(boardgame_xml: ET.Element) -> boardgame_classes.Boa return boardgame -def convert_collection_xml_to_owned_boardgame(boardgame_extra_info: boardgame_classes.BoardGame, collection_boardgame_xml: ET.Element) -> boardgame_classes.OwnedBoardGame: +def convert_collection_xml_to_owned_boardgame(boardgame_extra_info: boardgame_classes.BoardGame, collection_boardgame_xml: ET.Element) -> Union[boardgame_classes.OwnedBoardGame, boardgame_classes.OwnedBoardGameExpansion]: boardgame_type = collection_boardgame_xml.get('subtype') diff --git a/src/modules/data_connection.py b/src/modules/data_connection.py index d70f27f..8649922 100644 --- a/src/modules/data_connection.py +++ b/src/modules/data_connection.py @@ -1,3 +1,5 @@ +from typing import Union + from src.modules import bgg_connection, db_connection from src.classes import boardgame_classes, play_classes @@ -18,20 +20,24 @@ def get_boardgame(boardgame_id: int) -> boardgame_classes.BoardGame: return to_return_boardgame -def get_user_owned_collection() -> list[boardgame_classes.OwnedBoardGame]: +def get_user_owned_collection() -> list[Union[boardgame_classes.OwnedBoardGame, boardgame_classes.OwnedBoardGameExpansion]]: owned_boardgames_from_db = db_connection.get_all_owned_boardgames() + owned_boardgame_expanions_from_db = db_connection.get_all_owned_boardgames_expansions() - if len(owned_boardgames_from_db) != 0: - return owned_boardgames_from_db - else: + boardgames_to_return = [] + + if len(owned_boardgames_from_db) == 0 and len(owned_boardgame_expanions_from_db) == 0: owned_boardgames = bgg_connection.get_user_owned_collection() for boardgame in owned_boardgames: db_connection.add_boardgame(boardgame) return owned_boardgames + else: + return owned_boardgames_from_db + -def get_user_wishlist_collection() -> list[boardgame_classes.BoardGame]: +def get_user_wishlist_collection() -> Union[list[boardgame_classes.WishlistBoardGame], list[boardgame_classes.WishlistBoardGameExpansion]]: owned_boardgames_from_db = db_connection.get_all_wishlisted_boardgames