diff --git a/backend/myapi/db_functions/user.py b/backend/myapi/db_functions/user.py index 80da21f..bf77473 100644 --- a/backend/myapi/db_functions/user.py +++ b/backend/myapi/db_functions/user.py @@ -1,3 +1,4 @@ +from requests import delete from ..models import users_collection """ @@ -8,8 +9,7 @@ } """ -# user -# rating +## Basic CRUD def set_user(username: str, id: str) -> None: # check if user already exists @@ -19,38 +19,22 @@ def set_user(username: str, id: str) -> None: # add user users_collection.insert_one({"username": username, "id": id, "ratings": {}}) - def get_user(id: str) -> dict | None: return users_collection.find_one({"id": id}) -def get_user_by_username(username: str) -> dict[str, str|dict] | None: - return users_collection.find_one({"username": username}) - -def set_food_rating(iL: str, food_name: str, rating: int) -> None: +def update_user(id: str, food_name: str, rating: int|None=None) -> None: # check if user exists user = users_collection.find_one({"id": id}) if not user: return - # add/change rating - user["ratings"][food_name] = rating - # update user - users_collection.update_one( - {"id": id}, {"$set": {"ratings": user["ratings"]}} - ) -def get_food_rating(id: str, food_name: str) -> int | None: - # check if user exists - user = users_collection.find_one({"id": id}) - if not user: - return None - # check if user rated - if food_name not in user["ratings"]: - return None - return user["ratings"][food_name] + if rating is not None: + # add/change rating + user["ratings"][food_name] = rating + # update user + users_collection.update_one( + {"id": id}, {"$set": {"ratings": user["ratings"]}} + ) -def get_food_ratings(id: str) -> dict[str, int] | None: - # check if user exists - user = users_collection.find_one({"id": id}) - if not user: - return None - return user["ratings"] +def delete_user(id: str) -> None: + users_collection.delete_one({"id": id}) diff --git a/backend/myapi/db_functions/users.py b/backend/myapi/db_functions/users.py deleted file mode 100644 index 0c0e8b1..0000000 --- a/backend/myapi/db_functions/users.py +++ /dev/null @@ -1,52 +0,0 @@ -from ..models import users_collection -from pymongo.errors import PyMongoError - - -# Add user data to db, search by email/username -def add_user_data(user_data): - try: - # Insert new user's data or update existing user's data by overwritting fields in user_data - result = users_collection.update_one( - {"email": user_data["email"]}, {"$set": user_data}, upsert=True - ) - if result.upserted_id: - print("User data inserted with id:", result.upserted_id) - else: - print("User data updated") - except PyMongoError as e: - print("Error while adding user data:", e) - - -# Get all the user's data from db, search by email/username -def get_user_data(email): - try: - user_data = users_collection.find_one({"email": email}) - return user_data - except PyMongoError as e: - print("Error while getting user data:", e) - return None - - -# Get ratings data from user -def get_ratings_data(email): - try: - user_data = users_collection.find_one( - {"email": email}, {"_id": 0, "ratings": 1} - ) - # Return the "ratings" field, or an empty dictionary if not found - return user_data.get("ratings", {}) - except PyMongoError as e: - print("Error while getting ratings data:", e) - return {} - - -# Remove a user's data -def remove_user_data(email): - try: - result = users_collection.delete_one({"email": email}) - if result.deleted_count == 1: - print("User data removed successfully") - else: - print("User not found") - except PyMongoError as e: - print("Error while removing user data:", e)