1
0
mirror of https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git synced 2025-08-14 00:25:46 +02:00

чиним билд6

This commit is contained in:
MoonTestUse1
2025-01-02 00:15:55 +06:00
parent 1287ce2360
commit d4dc491f91

View File

@@ -1,43 +1,24 @@
"""Request handling routes"""
"""Request routes"""
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from typing import List
from ..database import get_db
from ..crud import requests as requests_crud
from ..crud import employees as employees_crud
from ..models.request import RequestCreate
from ..bot.notifications import send_notification
from ..utils.loggers import request_logger
from ..schemas.request import RequestCreate, Request, RequestWithEmployee
from ..models.request import RequestStatus
router = APIRouter()
@router.post("/")
async def create_request(request: RequestCreate, db: Session = Depends(get_db)):
@router.post("/requests/", response_model=Request)
def create_request(request: RequestCreate, db: Session = Depends(get_db)):
"""Create new request"""
try:
# Verify employee exists
employee = employees_crud.get_employee(db, request.employee_id)
if not employee:
raise HTTPException(
status_code=404,
detail="Сотрудник не найден"
)
return requests_crud.create_request(db=db, request=request)
db_request = requests_crud.create_request(db, request)
request_logger.info(
"Request created",
extra={"request_id": db_request.id, "employee_id": request.employee_id}
)
request_details = requests_crud.get_request_details(db, db_request.id)
await send_notification(request_details)
return db_request
except HTTPException:
raise
except Exception as e:
request_logger.error(
f"Error creating request: {e}",
extra={"employee_id": request.employee_id}
)
raise HTTPException(status_code=500, detail="Ошибка при создании заявки")
@router.get("/requests/{request_id}", response_model=RequestWithEmployee)
def get_request(request_id: int, db: Session = Depends(get_db)):
"""Get request by ID"""
request = requests_crud.get_request_details(db, request_id)
if request is None:
raise HTTPException(status_code=404, detail="Request not found")
return request