Add user update endpoint
This commit is contained in:
@@ -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")
|
||||
|
||||
+4
-4
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user