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 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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user