1
0
mirror of https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git synced 2025-08-14 00:25:46 +02:00
Files
AdministrationItDepartmens/backend/crud.py
2024-12-28 05:32:33 +06:00

56 lines
1.5 KiB
Python

from sqlalchemy.orm import Session
from models import request as models
from schemas import tables
from typing import List
def create_request(db: Session, request_data: dict):
db_request = tables.Request(
employee_id=request_data["employee_id"],
department=request_data["department"],
request_type=request_data["request_type"],
priority=request_data["priority"],
description=request_data["description"],
status="new",
)
db.add(db_request)
db.commit()
db.refresh(db_request)
return db_request
def get_requests(db: Session, skip: int = 0, limit: int = 100) -> List[tables.Request]:
return (
db.query(tables.Request)
.join(tables.Employee)
.add_columns(
tables.Employee.last_name.label("employee_last_name"),
tables.Employee.first_name.label("employee_first_name"),
)
.offset(skip)
.limit(limit)
.all()
)
def get_requests_by_employee_lastname(
db: Session, last_name: str
) -> List[tables.Request]:
return (
db.query(tables.Request)
.join(tables.Employee)
.filter(tables.Employee.last_name.ilike(f"%{last_name}%"))
.all()
)
def update_request_status(db: Session, request_id: int, new_status: str):
db_request = (
db.query(tables.Request).filter(tables.Request.id == request_id).first()
)
if db_request:
db_request.status = new_status
db.commit()
db.refresh(db_request)
return db_request