flip_api.project_services.get_projects ====================================== .. py:module:: flip_api.project_services.get_projects Attributes ---------- .. autoapisummary:: flip_api.project_services.get_projects.router Functions --------- .. autoapisummary:: flip_api.project_services.get_projects.get_projects_paginated_orm flip_api.project_services.get_projects.get_projects_endpoint Module Contents --------------- .. py:data:: router .. py:function:: get_projects_paginated_orm(session: sqlmodel.Session, user_id: uuid.UUID | None, paging_details: flip_api.utils.paging_utils.PagingInfo, filter_details: flip_api.utils.paging_utils.FilterInfo) -> flip_api.utils.paging_utils.IPagedResponse[flip_api.domain.interfaces.project.IProject] Fetches paginated project data from the database using SQLModel ORM. :param session: The SQLModel session used for the database queries. :type session: Session :param user_id: The requesting user's ID. When provided, results are restricted to projects the user owns or has explicit access to. :type user_id: UUID | None :param paging_details: Page size, offset, and optional search string. :type paging_details: PagingInfo :param filter_details: Additional filter criteria (e.g. owner ID). :type filter_details: FilterInfo :returns: Paginated list of projects and total row count. :rtype: IPagedResponse[IProject] .. py:function:: get_projects_endpoint(request: fastapi.Request, session: sqlmodel.Session = Depends(get_session), user_id: uuid.UUID = Depends(verify_token)) -> flip_api.utils.paging_utils.IPagedData[flip_api.domain.interfaces.project.IProject] Get a paginated and filtered list of projects. :param request: The HTTP request object, used to access query parameters. :type request: Request :param session: The database session for querying. :type session: Session :param user_id: The ID of the user making the request. :type user_id: UUID :returns: A paginated response containing the projects. :rtype: IPagedData[IProject] :raises HTTPException: If an error occurs while fetching projects.