mirror of
https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git
synced 2025-08-14 00:25:46 +02:00
Initial commit
This commit is contained in:
55
backend/crud.py
Normal file
55
backend/crud.py
Normal file
@@ -0,0 +1,55 @@
|
||||
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
|
Reference in New Issue
Block a user