diff --git a/backend/app/incidents/routes/db_operations.py b/backend/app/incidents/routes/db_operations.py index cfe8a4f9..4ef354ca 100644 --- a/backend/app/incidents/routes/db_operations.py +++ b/backend/app/incidents/routes/db_operations.py @@ -396,9 +396,13 @@ async def list_alerts_by_assigned_to_endpoint(assigned_to: str, db: AsyncSession @incidents_db_operations_router.get("/alerts/asset/{asset_name}", response_model=AlertOutResponse) -async def list_alerts_by_asset_name_endpoint(asset_name: str, db: AsyncSession = Depends(get_db)): - return AlertOutResponse(alerts=await list_alerts_by_asset_name(asset_name, db), success=True, message="Alerts retrieved successfully") - +async def list_alerts_by_asset_name_endpoint( + asset_name: str, + page: int = Query(1, ge=1), + page_size: int = Query(25, ge=1), + db: AsyncSession = Depends(get_db) +): + return AlertOutResponse(alerts=await list_alerts_by_asset_name(asset_name, db, page=page, page_size=page_size), success=True, message="Alerts retrieved successfully") @incidents_db_operations_router.get("/cases", response_model=CaseOutResponse) async def list_cases_endpoint(db: AsyncSession = Depends(get_db)): diff --git a/backend/app/incidents/services/db_operations.py b/backend/app/incidents/services/db_operations.py index 5148e7d4..2b2eeda3 100644 --- a/backend/app/incidents/services/db_operations.py +++ b/backend/app/incidents/services/db_operations.py @@ -843,7 +843,8 @@ async def list_alert_by_status(status: str, db: AsyncSession, page: int = 1, pag return alerts_out -async def list_alerts_by_asset_name(asset_name: str, db: AsyncSession) -> List[AlertOut]: +async def list_alerts_by_asset_name(asset_name: str, db: AsyncSession, page: int = 1, page_size: int = 25) -> List[AlertOut]: + offset = (page - 1) * page_size result = await db.execute( select(Alert) .join(Asset) @@ -853,7 +854,9 @@ async def list_alerts_by_asset_name(asset_name: str, db: AsyncSession) -> List[A selectinload(Alert.assets), selectinload(Alert.cases), selectinload(Alert.tags).selectinload(AlertToTag.tag), - ), + ) + .offset(offset) + .limit(page_size) ) alerts = result.scalars().all() alerts_out = []