Example #1
0
async def handle_list_projects(request: Request,
                               session: Session = Depends(session_scope)):
    """
    Handles GET requests to /.

    Parameters
    ----------
    request : fastapi.Request
    session : sqlalchemy.orm.session.Session

    Returns
    -------
    projects.schemas.project.ProjectList
    """
    project_controller = ProjectController(session)
    filters = format_query_params(str(request.query_params))
    order_by = filters.pop("order", None)
    page = filters.pop("page", 1)
    if page:
        page = int(page)
    page_size = filters.pop("page_size", 10)
    if page_size:
        page_size = int(page_size)
    projects = project_controller.list_projects(page=page,
                                                page_size=page_size,
                                                order_by=order_by,
                                                **filters)
    return projects
Example #2
0
async def handle_list_projects(
        request: Request,
        session: Session = Depends(database.session_scope),
        kubeflow_userid: Optional[str] = Header(database.DB_TENANT),
):
    """
    Handles GET requests to /.

    Parameters
    ----------
    request : fastapi.Request
    session : sqlalchemy.orm.session.Session
    kubeflow_userid : fastapi.Header

    Returns
    -------
    projects.schemas.project.ProjectList
    """
    filters = format_query_params(str(request.query_params))

    order_by = filters.pop("order", None)

    page = filters.pop("page", 1)
    page = int(page) if page else 1

    page_size = filters.pop("page_size", None)
    page_size = int(page_size) if page_size else 10

    project_controller = ProjectController(session,
                                           kubeflow_userid=kubeflow_userid)
    projects = project_controller.list_projects(page=page,
                                                page_size=page_size,
                                                order_by=order_by,
                                                **filters)
    return projects