Add user update endpoint

This commit is contained in:
Esa Kataja
2025-05-16 14:31:03 +03:00
parent a6f61a3c5b
commit c43b6f2e54
2 changed files with 5 additions and 4 deletions
+1
View File
@@ -55,3 +55,4 @@ class UpdateUser(BaseModel):
password: str | None = Field( password: str | None = Field(
None, description="Password of the user", examples=["p1p4l1"] None, description="Password of the user", examples=["p1p4l1"]
) )
updated_at: datetime = Field(default=datetime.now(), description="Updated at")
+4 -4
View File
@@ -47,7 +47,6 @@ async def update_user(user: UpdateUser, request: Request):
avatar_id = user.avatar_id if user.avatar_id else None avatar_id = user.avatar_id if user.avatar_id else None
email = user.email if user.email else None email = user.email if user.email else None
password = hash_password(user.password) if user.password else None password = hash_password(user.password) if user.password else None
updated_at = datetime.now()
with get_connection() as conn: with get_connection() as conn:
# Build query dynamically based on non-None values # Build query dynamically based on non-None values
@@ -63,14 +62,15 @@ async def update_user(user: UpdateUser, request: Request):
params.append(email) params.append(email)
if password is not None: if password is not None:
update_fields.append("password = ?") update_fields.append("hashed_password = ?")
params.append(password) params.append(password)
# Only proceed if there are fields to update # Only proceed if there are fields to update
if update_fields: if update_fields:
query = f'UPDATE "User" SET {", ".join(update_fields)}, updated_at = ? WHERE id = ?' query = f'UPDATE "User" SET {", ".join(update_fields)}, updated_at = CURRENT_TIMESTAMP WHERE id = ?'
params.append(updated_at)
params.append(user_id) params.append(user_id)
logger.debug(f"Executing query: {query}")
logger.debug(f"Query parameters: {params}")
conn.execute(query, params) conn.execute(query, params)
logger.debug( logger.debug(