diff --git a/src/backend/app/projects/project_crud.py b/src/backend/app/projects/project_crud.py index 87c037ee12..e042ca1895 100644 --- a/src/backend/app/projects/project_crud.py +++ b/src/backend/app/projects/project_crud.py @@ -77,9 +77,9 @@ async def get_projects( db: Session, - user_id: int, skip: int = 0, limit: int = 100, + user_id: Optional[int] = None, hashtags: Optional[List[str]] = None, search: Optional[str] = None, ): @@ -93,8 +93,8 @@ async def get_projects( if search: filters.append( - db_models.DbProject.project_info.name.ilike( # type: ignore - f"%{search}%" + db_models.DbProject.project_info.has( + db_models.DbProjectInfo.name.ilike(f"%{search}%") ) ) @@ -123,15 +123,15 @@ async def get_projects( async def get_project_summaries( db: Session, - user_id: int, skip: int = 0, limit: int = 100, + user_id: Optional[int] = None, hashtags: Optional[List[str]] = None, search: Optional[str] = None, ): """Get project summary details for main page.""" project_count, db_projects = await get_projects( - db, user_id, skip, limit, hashtags, search + db, skip, limit, user_id, hashtags, search ) return project_count, await convert_to_project_summaries(db_projects) diff --git a/src/backend/app/projects/project_routes.py b/src/backend/app/projects/project_routes.py index 9fdc8b8cb2..10e4b8b9d3 100644 --- a/src/backend/app/projects/project_routes.py +++ b/src/backend/app/projects/project_routes.py @@ -141,10 +141,10 @@ async def get_tasks_near_me(lat: float, long: float, user_id: int = None): @router.get("/summaries", response_model=project_schemas.PaginatedProjectSummaries) async def read_project_summaries( - user_id: int = None, - hashtags: str = None, page: int = Query(1, ge=1), # Default to page 1, must be greater than or equal to 1 results_per_page: int = Query(13, le=100), + user_id: Optional[int] = None, + hashtags: Optional[str] = None, db: Session = Depends(database.get_db), ): """Get a paginated summary of projects.""" @@ -159,7 +159,7 @@ async def read_project_summaries( limit = results_per_page project_count, projects = await project_crud.get_project_summaries( - db, user_id, skip, limit, hashtags, None + db, skip, limit, user_id, hashtags, None ) pagination = await project_crud.get_pagination( @@ -181,10 +181,10 @@ async def read_project_summaries( ) async def search_project( search: str, - user_id: int = None, - hashtags: str = None, page: int = Query(1, ge=1), # Default to page 1, must be greater than or equal to 1 results_per_page: int = Query(13, le=100), + user_id: Optional[int] = None, + hashtags: Optional[str] = None, db: Session = Depends(database.get_db), ): """Search projects by string, hashtag, or other criteria.""" @@ -199,7 +199,7 @@ async def search_project( limit = results_per_page project_count, projects = await project_crud.get_project_summaries( - db, user_id, skip, limit, hashtags, search + db, skip, limit, user_id, hashtags, search ) pagination = await project_crud.get_pagination(