Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

drivetask.py 1.7 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. from sqlalchemy.orm import Session
  2. from schemas.drivetask import CreateTask
  3. from db.models.drivetask import DriveTask
  4. from db.repository.user import get_user_by_id
  5. def create_new_task(task: CreateTask, db: Session):
  6. driver = get_user_by_id(task.DriverId, db)
  7. if driver is None:
  8. return "notdriver"
  9. elif driver.Role != "Driver":
  10. return "notdriver"
  11. task_object = DriveTask(
  12. DriverId=task.DriverId,
  13. Description=task.Description,
  14. Status="Pending",
  15. StartLocation=task.StartLocation,
  16. EndLocation=task.EndLocation,
  17. )
  18. db.add(task_object)
  19. db.commit()
  20. db.refresh(task_object)
  21. return task_object
  22. def change_task_status(task_id: int, status: str, db: Session):
  23. task = db.query(DriveTask).filter(DriveTask.Id == task_id).first()
  24. if not task:
  25. return "notaskfound"
  26. task.Status = status
  27. db.commit()
  28. db.refresh(task)
  29. return task
  30. def get_task_driver(task_id: int, db: Session):
  31. task = db.query(DriveTask).filter(DriveTask.Id == task_id).first()
  32. if not task:
  33. return "notaskfound"
  34. driver = get_user_by_id(task.DriverId, db)
  35. if not driver:
  36. return "notdriver"
  37. return driver
  38. def get_tasks_by_driver(driver_id: int, db: Session):
  39. driver = get_user_by_id(driver_id, db)
  40. if not driver:
  41. return "notdriver"
  42. if driver.Role != "Driver":
  43. return "notdriver"
  44. tasks = db.query(DriveTask).filter(DriveTask.DriverId == driver_id).all()
  45. return tasks
  46. def get_task_by_id(task_id: int, db: Session):
  47. task = db.query(DriveTask).filter(DriveTask.Id == task_id).first()
  48. if not task:
  49. return "notaskfound"
  50. return task
  51. def get_all_tasks(db: Session):
  52. tasks = db.query(DriveTask).all()
  53. return tasks