perf: eliminate redundant SELECT after UPDATE in users.py (#21011)
This commit is contained in:
@@ -530,9 +530,12 @@ class UsersTable:
|
|||||||
) -> Optional[UserModel]:
|
) -> Optional[UserModel]:
|
||||||
try:
|
try:
|
||||||
with get_db_context(db) as db:
|
with get_db_context(db) as db:
|
||||||
db.query(User).filter_by(id=id).update({"role": role})
|
|
||||||
db.commit()
|
|
||||||
user = db.query(User).filter_by(id=id).first()
|
user = db.query(User).filter_by(id=id).first()
|
||||||
|
if not user:
|
||||||
|
return None
|
||||||
|
user.role = role
|
||||||
|
db.commit()
|
||||||
|
db.refresh(user)
|
||||||
return UserModel.model_validate(user)
|
return UserModel.model_validate(user)
|
||||||
except Exception:
|
except Exception:
|
||||||
return None
|
return None
|
||||||
@@ -542,12 +545,13 @@ class UsersTable:
|
|||||||
) -> Optional[UserModel]:
|
) -> Optional[UserModel]:
|
||||||
try:
|
try:
|
||||||
with get_db_context(db) as db:
|
with get_db_context(db) as db:
|
||||||
db.query(User).filter_by(id=id).update(
|
|
||||||
{**form_data.model_dump(exclude_none=True)}
|
|
||||||
)
|
|
||||||
db.commit()
|
|
||||||
|
|
||||||
user = db.query(User).filter_by(id=id).first()
|
user = db.query(User).filter_by(id=id).first()
|
||||||
|
if not user:
|
||||||
|
return None
|
||||||
|
for key, value in form_data.model_dump(exclude_none=True).items():
|
||||||
|
setattr(user, key, value)
|
||||||
|
db.commit()
|
||||||
|
db.refresh(user)
|
||||||
return UserModel.model_validate(user)
|
return UserModel.model_validate(user)
|
||||||
except Exception:
|
except Exception:
|
||||||
return None
|
return None
|
||||||
@@ -557,12 +561,12 @@ class UsersTable:
|
|||||||
) -> Optional[UserModel]:
|
) -> Optional[UserModel]:
|
||||||
try:
|
try:
|
||||||
with get_db_context(db) as db:
|
with get_db_context(db) as db:
|
||||||
db.query(User).filter_by(id=id).update(
|
|
||||||
{"profile_image_url": profile_image_url}
|
|
||||||
)
|
|
||||||
db.commit()
|
|
||||||
|
|
||||||
user = db.query(User).filter_by(id=id).first()
|
user = db.query(User).filter_by(id=id).first()
|
||||||
|
if not user:
|
||||||
|
return None
|
||||||
|
user.profile_image_url = profile_image_url
|
||||||
|
db.commit()
|
||||||
|
db.refresh(user)
|
||||||
return UserModel.model_validate(user)
|
return UserModel.model_validate(user)
|
||||||
except Exception:
|
except Exception:
|
||||||
return None
|
return None
|
||||||
@@ -573,12 +577,12 @@ class UsersTable:
|
|||||||
) -> Optional[UserModel]:
|
) -> Optional[UserModel]:
|
||||||
try:
|
try:
|
||||||
with get_db_context(db) as db:
|
with get_db_context(db) as db:
|
||||||
db.query(User).filter_by(id=id).update(
|
|
||||||
{"last_active_at": int(time.time())}
|
|
||||||
)
|
|
||||||
db.commit()
|
|
||||||
|
|
||||||
user = db.query(User).filter_by(id=id).first()
|
user = db.query(User).filter_by(id=id).first()
|
||||||
|
if not user:
|
||||||
|
return None
|
||||||
|
user.last_active_at = int(time.time())
|
||||||
|
db.commit()
|
||||||
|
db.refresh(user)
|
||||||
return UserModel.model_validate(user)
|
return UserModel.model_validate(user)
|
||||||
except Exception:
|
except Exception:
|
||||||
return None
|
return None
|
||||||
@@ -620,12 +624,14 @@ class UsersTable:
|
|||||||
) -> Optional[UserModel]:
|
) -> Optional[UserModel]:
|
||||||
try:
|
try:
|
||||||
with get_db_context(db) as db:
|
with get_db_context(db) as db:
|
||||||
db.query(User).filter_by(id=id).update(updated)
|
|
||||||
db.commit()
|
|
||||||
|
|
||||||
user = db.query(User).filter_by(id=id).first()
|
user = db.query(User).filter_by(id=id).first()
|
||||||
|
if not user:
|
||||||
|
return None
|
||||||
|
for key, value in updated.items():
|
||||||
|
setattr(user, key, value)
|
||||||
|
db.commit()
|
||||||
|
db.refresh(user)
|
||||||
return UserModel.model_validate(user)
|
return UserModel.model_validate(user)
|
||||||
# return UserModel(**user.dict())
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e)
|
print(e)
|
||||||
return None
|
return None
|
||||||
|
|||||||
Reference in New Issue
Block a user