Add Set user last login on login

This commit is contained in:
Esa Kataja
2024-12-01 22:11:25 +02:00
parent 960856cdd8
commit 7f6dcefb91
+18 -14
View File
@@ -1,24 +1,28 @@
from datetime import datetime
from models.user import UserIn, UserOut 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: def get_user_by_username(username) -> UserIn | None:
sql = f"SELECT * FROM users WHERE username = '{username}'" sql = f"SELECT * FROM users WHERE username = '{username}'"
with get_db() as conn: 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: if result is not None:
return UserIn( last_login = set_last_login(result["id"])
id=str(result[0]), result["id"] = str(result["id"])
username=result[1], result["last_login"] = last_login
password=result[2], return UserIn(**result)
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],
)
return None return None