Skip to content

Commit 0cd83af

Browse files
committed
use direct model updating (again)
1 parent 7574850 commit 0cd83af

File tree

1 file changed

+8
-13
lines changed

1 file changed

+8
-13
lines changed

v1/users/main.py

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -73,20 +73,14 @@ async def update_user(
7373
if user.email != user_email:
7474
raise HTTPException(
7575
status_code=403
76-
) # they're trying to update someone elses email, no!
76+
) # they're trying to update someone elses data, no!
7777

78-
update_data = update_request.model_dump(exclude_unset=True, exclude={"id"})
79-
80-
allowed_update_fields = {"email"}
81-
for field, value in update_data.items():
82-
if field in allowed_update_fields:
83-
setattr(user, field, value)
78+
if update_request.email is not None:
79+
user.email = update_request.email
8480

8581
try:
8682
await session.commit()
87-
await session.refresh(
88-
user
89-
) # TODO: figure out why we're refreshing every time and if its needed
83+
await session.refresh(user)
9084
if update_request.email is not None:
9185
ret_jwt = await generate_session_id(update_request.email)
9286
response.set_cookie(
@@ -96,11 +90,12 @@ async def update_user(
9690
secure=True,
9791
max_age=604800,
9892
)
93+
response.status_code = 204
9994
except Exception: # type: ignore # pylint: disable=broad-exception-caught
10095
await session.rollback()
10196
return Response(status_code=500)
10297

103-
return Response(status_code=204)
98+
return response
10499

105100

106101
# @protect
@@ -142,7 +137,7 @@ async def delete_user(
142137
if user.email != user_email:
143138
raise HTTPException(
144139
status_code=403
145-
) # they're trying to delete someone elses email, no!
140+
) # they're trying to delete someone elses user, no!
146141

147142
user.marked_for_deletion = True
148143
user.date_for_deletion = datetime.now(timezone.utc) + timedelta(days=30)
@@ -157,7 +152,7 @@ async def delete_user(
157152
raise HTTPException(status_code=500)
158153

159154
return JSONResponse(
160-
{"success": True, "deletion_date": user.date_for_deletion.isoformat()}, # type: ignore
155+
{"deletion_date": user.date_for_deletion.isoformat()}, # type: ignore
161156
status_code=200,
162157
)
163158

0 commit comments

Comments
 (0)