Add more comprehensive logging

This commit is contained in:
Esa Kataja
2025-05-10 14:28:34 +03:00
parent aecc0731bc
commit 39da976ef3
4 changed files with 100 additions and 32 deletions
+16 -5
View File
@@ -1,14 +1,15 @@
from fastapi import APIRouter
from fastapi import HTTPException
from fastapi import APIRouter, HTTPException, Request
from models.user import User, UserChangePassword
from lib.db import get_connection
from lib.logger import logger
router = APIRouter(prefix="/users", tags=["users"])
@router.get("/", response_model=list[User])
async def list_users():
async def list_users(request: Request):
logger.info(f"User list requested from {request.client.host}")
with get_connection() as conn:
users = conn.execute('SELECT * FROM "User"').fetchdf()
@@ -18,19 +19,29 @@ async def list_users():
@router.get("/{user_id}", response_model=User)
async def get_user(user_id: int):
async def get_user(user_id: int, request: Request):
logger.debug(
f"User details requested for user_id: {user_id} from {request.client.host}"
)
with get_connection() as conn:
user_df = conn.execute(
'SELECT * FROM "User" WHERE id = ?', (user_id,)
).fetchdf()
if user_df.empty:
logger.warning(f"Failed user lookup: user_id {user_id} not found")
raise HTTPException(status_code=404, detail="User not found")
user_data = user_df.to_dict(orient="records")[0]
logger.debug(f"User details retrieved: {user_data}")
return User(**user_data)
@router.patch("/{user_id}")
async def change_password(user: UserChangePassword):
async def change_password(user_id: int, user: UserChangePassword, request: Request):
logger.info(
f"Password change attempt for user_id: {user_id} from {request.client.host}"
)
# Implementation will go here when completed
logger.warning(f"Password change not implemented for user_id: {user_id}")
raise HTTPException(status_code=401, detail="Not implemented")