diff --git a/src/lib/database/user.py b/src/lib/database/user.py index efa1753..f383748 100644 --- a/src/lib/database/user.py +++ b/src/lib/database/user.py @@ -1,24 +1,28 @@ +from datetime import datetime + from models.user import UserIn, UserOut -from lib.database.database import get_db +from lib.database.database import get_db, db_run +from lib.logger import logger + + +def set_last_login(user_id: str) -> datetime: + cur_time = datetime.now() + sql = f"UPDATE users SET last_login = '{cur_time}' WHERE id = '{user_id}'" + with get_db() as conn: + conn.execute(sql) + + return cur_time def get_user_by_username(username) -> UserIn | None: sql = f"SELECT * FROM users WHERE username = '{username}'" with get_db() as conn: - result = conn.execute(sql).fetchone() + result = conn.execute(sql).df().to_dict(orient="records")[0] if result is not None: - return UserIn( - id=str(result[0]), - username=result[1], - password=result[2], - email=result[3], - avatar_url=result[4], - is_active=result[5], - is_admin=result[6], - last_login=result[7], - created_at=result[8], - updated_at=result[9], - ) + last_login = set_last_login(result["id"]) + result["id"] = str(result["id"]) + result["last_login"] = last_login + return UserIn(**result) return None