Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
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
Ejemplo n.º 9
0
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