refac: is_user_active

This commit is contained in:
Timothy Jaeryang Baek
2026-02-13 13:40:59 -06:00
parent 97a3b1528d
commit ca6b18ab5c
2 changed files with 12 additions and 4 deletions
+8
View File
@@ -762,6 +762,14 @@ class UsersTable:
)
return count
@staticmethod
def is_active(user: UserModel) -> bool:
"""Compute active status from an already-loaded UserModel (no DB hit)."""
if user.last_active_at:
three_minutes_ago = int(time.time()) - 180
return user.last_active_at >= three_minutes_ago
return False
def is_user_active(self, user_id: str, db: Optional[Session] = None) -> bool:
with get_db_context(db) as db:
user = db.query(User).filter_by(id=user_id).first()
+4 -4
View File
@@ -204,7 +204,7 @@ async def get_channels(
UserIdNameStatusResponse(
**{
**user.model_dump(),
"is_active": Users.is_user_active(user.id, db=db),
"is_active": Users.is_active(user),
}
)
for user in Users.get_users_by_user_ids(user_ids, db=db)
@@ -424,7 +424,7 @@ async def get_channel_by_id(
UserIdNameStatusResponse(
**{
**user.model_dump(),
"is_active": Users.is_user_active(user.id, db=db),
"is_active": Users.is_active(user),
}
)
for user in Users.get_users_by_user_ids(user_ids, db=db)
@@ -541,7 +541,7 @@ async def get_channel_members_by_id(
return {
"users": [
UserModelResponse(
**user.model_dump(), is_active=Users.is_user_active(user.id, db=db)
**user.model_dump(), is_active=Users.is_active(user)
)
for user in users
],
@@ -576,7 +576,7 @@ async def get_channel_members_by_id(
return {
"users": [
UserModelResponse(
**user.model_dump(), is_active=Users.is_user_active(user.id, db=db)
**user.model_dump(), is_active=Users.is_active(user)
)
for user in users
],