From c43b6f2e54a05ee53a1330278ea7dcd8013938db Mon Sep 17 00:00:00 2001 From: Esa Kataja Date: Fri, 16 May 2025 14:31:03 +0300 Subject: [PATCH] Add user update endpoint --- src/models/user.py | 1 + src/routes/users.py | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/models/user.py b/src/models/user.py index a8451be..6d1eaaf 100644 --- a/src/models/user.py +++ b/src/models/user.py @@ -55,3 +55,4 @@ class UpdateUser(BaseModel): password: str | None = Field( None, description="Password of the user", examples=["p1p4l1"] ) + updated_at: datetime = Field(default=datetime.now(), description="Updated at") diff --git a/src/routes/users.py b/src/routes/users.py index 99b32a7..2a96564 100644 --- a/src/routes/users.py +++ b/src/routes/users.py @@ -47,7 +47,6 @@ async def update_user(user: UpdateUser, request: Request): avatar_id = user.avatar_id if user.avatar_id else None email = user.email if user.email else None password = hash_password(user.password) if user.password else None - updated_at = datetime.now() with get_connection() as conn: # Build query dynamically based on non-None values @@ -63,14 +62,15 @@ async def update_user(user: UpdateUser, request: Request): params.append(email) if password is not None: - update_fields.append("password = ?") + update_fields.append("hashed_password = ?") params.append(password) # Only proceed if there are fields to update if update_fields: - query = f'UPDATE "User" SET {", ".join(update_fields)}, updated_at = ? WHERE id = ?' - params.append(updated_at) + query = f'UPDATE "User" SET {", ".join(update_fields)}, updated_at = CURRENT_TIMESTAMP WHERE id = ?' params.append(user_id) + logger.debug(f"Executing query: {query}") + logger.debug(f"Query parameters: {params}") conn.execute(query, params) logger.debug(