Newer
Older
from sqlalchemy.orm import Session
import models
import schemas
def get_tasks(db: Session, skip: int = 0):
return db.query(models.Task).offset(skip).all()
def get_task(db: Session, task_id: int):
return db.query(models.Task).filter(models.Task.id == task_id).first()
def create_task(db: Session, task: schemas.TaskCreate) -> models.Task:
db_task = models.Task(**task.model_dump())
db.add(db_task)
db.commit()
db.refresh(db_task)
return db_task
def update_task(db: Session, task: schemas.TaskCreate, task_id: int) -> None:
db.query(models.Task).filter(models.Task.id == task_id).update(
{**task.model_dump(exclude_unset=True)}
)
db.commit()
def delete_task(db: Session, task_id: int) -> None:
db.query(models.Task).filter(models.Task.id == task_id).delete()
db.commit()
def create_task_status(
db: Session, task_status: schemas.TaskStatusCreate
) -> models.TaskStatus:
db_task_status = models.TaskStatus(**task_status.model_dump())
db.add(db_task_status)
db.commit()
db.refresh(db_task_status)
return db_task_status
def get_task_status_session(db: Session, session_id: int) -> models.TaskStatus | None:
return (
db.query(models.TaskStatus)
.filter(models.TaskStatus.session_id == session_id)
.order_by(models.TaskStatus.created_at.desc())
.first()
)
def get_task_status_completed(db: Session, student_id: int) -> list[models.TaskStatus]:
return (
db.query(models.TaskStatus)
.filter(models.TaskStatus.student_id == student_id)
.filter(models.TaskStatus.status == "finish")
.all()
)