Add Set user last login on login
This commit is contained in:
+18
-14
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user