From 36acbf38df00370a0d416d2fb5d1bc871c549e2a Mon Sep 17 00:00:00 2001 From: Gloria Ataa Sekyere <32042909+GloriaSekyere@users.noreply.github.com> Date: Sun, 5 Jan 2025 17:49:59 -0800 Subject: [PATCH] Update user.py 1. In create() the last line is changed from return user to use get_one(user.name) to confirm we are returning the created user not the same one we passed in the argument. 2. delete() return type is changed from None to User since create() returns a User 3. Check for 'if not name' condition before executing the delete query to avoid executing delete queries with an empty string 4. In model_to_dict() function user.dict() has been changed to user.model_dump() as .dict() is deprecated. --- src/data/user.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/data/user.py b/src/data/user.py index 34e918c..1b78425 100644 --- a/src/data/user.py +++ b/src/data/user.py @@ -16,7 +16,7 @@ def row_to_model(row: tuple) -> User: return User(name=name, hash=hash) def model_to_dict(user: User) -> dict: - return user.dict() + return user.model_dump() def get_one(name: str) -> User: qry = "select * from user where name=:name" @@ -35,6 +35,7 @@ def get_all() -> list[User]: def create(user: User, table:str = "user") -> User: """Add to user or xuser table""" + if not user: return None if table not in ("user", "xuser"): raise Exception(f"Invalid table name {table}") qry = f"""insert into {table} @@ -47,7 +48,7 @@ def create(user: User, table:str = "user") -> User: except IntegrityError: raise Duplicate(msg= f"{table}: user {user.name} already exists") - return user + return get_one(user.name) def modify(name: str, user: User) -> User: qry = """update user set @@ -63,8 +64,9 @@ def modify(name: str, user: User) -> User: else: raise Missing(msg=f"User {name} not found") -def delete(name: str) -> None: +def delete(name: str) -> User: """Drop user with from user table, add to xuser table""" + if not name: return False user = get_one(name) qry = "delete from user where name = :name" params = {"name": name}