async def handle_list_tasks(request: Request, session: Session = Depends( database.session_scope)): """ Handles GET requests to /. Parameters ---------- request : fastapi.Request session : sqlalchemy.orm.session.Session Returns ------- projects.schemas.task.TaskList """ task_controller = TaskController(session) filters = format_query_params(str(request.query_params)) order_by = filters.pop("order", None) page = filters.pop("page", None) if page: page = int(page) page_size = filters.pop("page_size", None) if page_size: page_size = int(page_size) tasks = task_controller.list_tasks(page=page, page_size=page_size, order_by=order_by, **filters) return tasks
async def handle_task_email_sender( task_id: str, email_schema: EmailSchema, background_tasks: BackgroundTasks, session: Session = Depends(database.session_scope), ): """ Handles request to /{task_id}/email Parameters ---------- task_id : str background_tasks : fastapi.BackgroundTasks session : sqlalchemy.orm.session.Session email: projects.schema.mailing.EmailSchema Returns ------- message: str """ task_controller = TaskController(session, background_tasks) result = task_controller.send_emails(email_schema, task_id=task_id) return result
async def handle_get_task(task_id: str, session: Session = Depends(database.session_scope)): """ Handles GET requests to /<task_id>. Parameters ---------- task_id : str session : sqlalchemy.orm.session.Session Returns ------- projects.schemas.task.Task """ task_controller = TaskController(session) task = task_controller.get_task(task_id=task_id) return task
async def handle_post_tasks( task: projects.schemas.task.TaskCreate, session: Session = Depends(database.session_scope), ): """ Handles POST requests to /. Parameters ---------- task : projects.schemas.task.TaskCreate session : sqlalchemy.orm.session.Session Returns ------- projects.schemas.task.Task """ task_controller = TaskController(session) task = task_controller.create_task(task=task) return task
async def handle_post_tasks(task: projects.schemas.task.TaskCreate, background_tasks: BackgroundTasks, session: Session = Depends(session_scope)): """ Handles POST requests to /. Parameters ---------- task : projects.schemas.task.TaskCreate background_tasks : fastapi.BackgroundTasks session : sqlalchemy.orm.session.Session Returns ------- projects.schemas.task.Task """ task_controller = TaskController(session, background_tasks) task = task_controller.create_task(task=task) return task
async def handle_delete_task(task_id: str, background_tasks: BackgroundTasks, session: Session = Depends(session_scope)): """ Handles DELETE requests to /<task_id>. Parameters ---------- task_id : str background_tasks : fastapi.BackgroundTasks session : sqlalchemy.orm.session.Session Returns ------- projects.schemas.message.Message """ task_controller = TaskController(session, background_tasks) result = task_controller.delete_task(task_id=task_id) return result
async def handle_list_parameters(task_id: str, session: Session = Depends(session_scope)): """ Handles GET requests to /. Parameters ---------- task_id : str session : sqlalchemy.orm.session.Session Returns ------- dict """ task_controller = TaskController(session) task_controller.raise_if_task_does_not_exist(session) parameter_controller = ParameterController(session) parameters = parameter_controller.list_parameters(task_id=task_id) return parameters
async def handle_patch_task(task_id: str, task: projects.schemas.task.TaskUpdate, background_tasks: BackgroundTasks, session: Session = Depends(session_scope)): """ Handles PATCH requests to /<task_id>. Parameters ---------- task_id : str task : projects.schemas.task.TaskUpdate background_tasks : fastapi.BackgroundTasks session : sqlalchemy.orm.session.Session Returns ------- projects.schemas.task.Task """ task_controller = TaskController(session, background_tasks) task = task_controller.update_task(task_id=task_id, task=task) return task
async def handle_list_parameters( task_id: str, session: Session = Depends(database.session_scope), kubeflow_userid: Optional[str] = Header(database.DB_TENANT), ): """ Handles GET requests to /. Parameters ---------- task_id : str session : sqlalchemy.orm.session.Session kubeflow_userid : fastapi.Header Returns ------- dict """ task_controller = TaskController(session) task_controller.raise_if_task_does_not_exist(task_id=task_id) parameter_controller = ParameterController(session) parameters = parameter_controller.list_parameters(task_id=task_id) return parameters