mirror of
https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git
synced 2025-08-14 00:25:46 +02:00
починка уведомлени в тг
This commit is contained in:
@@ -30,6 +30,28 @@ def get_request(db: Session, request_id: int) -> Optional[Request]:
|
|||||||
"""Get request by ID"""
|
"""Get request by ID"""
|
||||||
return db.query(Request).filter(Request.id == request_id).first()
|
return db.query(Request).filter(Request.id == request_id).first()
|
||||||
|
|
||||||
|
def get_request_details(db: Session, request_id: int) -> Optional[Dict]:
|
||||||
|
"""Get detailed request information including employee data"""
|
||||||
|
request = get_request(db, request_id)
|
||||||
|
if not request:
|
||||||
|
return None
|
||||||
|
|
||||||
|
employee = employees.get_employee(db, request.employee_id)
|
||||||
|
if not employee:
|
||||||
|
return None
|
||||||
|
|
||||||
|
return {
|
||||||
|
"id": request.id,
|
||||||
|
"request_type": request.request_type,
|
||||||
|
"description": request.description,
|
||||||
|
"priority": request.priority,
|
||||||
|
"status": request.status,
|
||||||
|
"department": request.department,
|
||||||
|
"created_at": request.created_at.isoformat(),
|
||||||
|
"employee_first_name": employee.first_name,
|
||||||
|
"employee_last_name": employee.last_name
|
||||||
|
}
|
||||||
|
|
||||||
def get_employee_requests(db: Session, employee_id: int) -> list[Request]:
|
def get_employee_requests(db: Session, employee_id: int) -> list[Request]:
|
||||||
"""Get employee's requests"""
|
"""Get employee's requests"""
|
||||||
return db.query(Request).filter(Request.employee_id == employee_id).all()
|
return db.query(Request).filter(Request.employee_id == employee_id).all()
|
||||||
|
@@ -7,6 +7,8 @@ from ..crud import requests
|
|||||||
from ..schemas.request import Request, RequestCreate, RequestUpdate
|
from ..schemas.request import Request, RequestCreate, RequestUpdate
|
||||||
from ..models.request import RequestStatus
|
from ..models.request import RequestStatus
|
||||||
from ..utils.auth import get_current_employee, get_current_admin
|
from ..utils.auth import get_current_employee, get_current_admin
|
||||||
|
from ..utils.telegram import notify_new_request
|
||||||
|
import asyncio
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
@@ -17,7 +19,10 @@ def create_request(
|
|||||||
current_employee: dict = Depends(get_current_employee)
|
current_employee: dict = Depends(get_current_employee)
|
||||||
):
|
):
|
||||||
"""Create new request"""
|
"""Create new request"""
|
||||||
return requests.create_request(db, request, current_employee["id"])
|
db_request = requests.create_request(db, request, current_employee["id"])
|
||||||
|
# Отправляем уведомление в Telegram
|
||||||
|
asyncio.create_task(notify_new_request(db_request.id))
|
||||||
|
return db_request
|
||||||
|
|
||||||
@router.get("/my", response_model=List[Request])
|
@router.get("/my", response_model=List[Request])
|
||||||
def get_employee_requests(
|
def get_employee_requests(
|
||||||
|
BIN
backend/test.db
BIN
backend/test.db
Binary file not shown.
Reference in New Issue
Block a user