diff --git a/backend/app/routers/requests.py b/backend/app/routers/requests.py index 111b97c..2d3318a 100644 --- a/backend/app/routers/requests.py +++ b/backend/app/routers/requests.py @@ -5,40 +5,24 @@ from ..database import get_db from ..crud import requests as requests_crud from ..models.request import RequestCreate from ..bot.notifications import send_notification -from logging import getLogger +from ..utils.loggers import request_logger router = APIRouter() -logger = getLogger(__name__) @router.post("/") async def create_request(request: RequestCreate, db: Session = Depends(get_db)): """Create new request""" try: db_request = requests_crud.create_request(db, request) - # Send notification to Telegram + request_logger.info( + "Request created", + extra={"request_id": db_request.id, "employee_id": request.employee_id} + ) await send_notification(requests_crud.get_request_details(db, db_request.id)) return db_request except Exception as e: - logger.error(f"Error creating request: {e}", exc_info=True) - raise HTTPException(status_code=500, detail="Ошибка при создании заявки") - -@router.get("/") -async def get_requests(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): - """Get all requests""" - try: - return requests_crud.get_requests(db, skip, limit) - except Exception as e: - logger.error(f"Error fetching requests: {e}", exc_info=True) - raise HTTPException(status_code=500, detail="Ошибка при получении заявок") - -@router.get("/{request_id}") -async def get_request(request_id: int, db: Session = Depends(get_db)): - """Get request by ID""" - try: - request = requests_crud.get_request_details(db, request_id) - if not request: - raise HTTPException(status_code=404, detail="Заявка не найдена") - return request - except Exception as e: - logger.error(f"Error fetching request: {e}", exc_info=True) - raise HTTPException(status_code=500, detail="Ошибка при получении заявки") \ No newline at end of file + request_logger.error( + f"Error creating request: {e}", + extra={"employee_id": request.employee_id} + ) + raise HTTPException(status_code=500, detail="Ошибка при создании заявки") \ No newline at end of file diff --git a/backend/app/utils/loggers.py b/backend/app/utils/loggers.py new file mode 100644 index 0000000..baa9d1c --- /dev/null +++ b/backend/app/utils/loggers.py @@ -0,0 +1,24 @@ +"""Logging utilities""" +import logging +from typing import Any + +class CustomLogger: + def __init__(self, name: str): + self.logger = logging.getLogger(name) + + def info(self, message: str, extra: dict[str, Any] | None = None): + self.logger.info(message, extra=extra) + + def error(self, message: str, exc_info: bool = True, extra: dict[str, Any] | None = None): + self.logger.error(message, exc_info=exc_info, extra=extra) + + def warning(self, message: str, extra: dict[str, Any] | None = None): + self.logger.warning(message, extra=extra) + + def debug(self, message: str, extra: dict[str, Any] | None = None): + self.logger.debug(message, extra=extra) + +# Create loggers +request_logger = CustomLogger("app.requests") +auth_logger = CustomLogger("app.auth") +db_logger = CustomLogger("app.database") \ No newline at end of file