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