diff --git a/app/api/endpoints/humidity.py b/app/api/endpoints/humidity.py index 291131d..a75cff1 100644 --- a/app/api/endpoints/humidity.py +++ b/app/api/endpoints/humidity.py @@ -37,6 +37,7 @@ async def create_new_humidity( async def search_humidity( session: AsyncSession = Depends(deps.get_session), limit: int = Query(100, ge=1, le=1000), + offset: int = Query(0, ge=0), start_date: datetime | None = Query( None, description="Filter readings from this date (ISO 8601)" ), @@ -51,6 +52,6 @@ async def search_humidity( if end_date: query = query.where(Humidity.create_time <= end_date) - query = query.order_by(Humidity.create_time.desc()).limit(limit) + query = query.order_by(Humidity.create_time.desc()).offset(offset).limit(limit) humidity_list = await session.scalars(query) return list(humidity_list.all()) diff --git a/app/api/endpoints/pressure.py b/app/api/endpoints/pressure.py index e770101..b62770c 100644 --- a/app/api/endpoints/pressure.py +++ b/app/api/endpoints/pressure.py @@ -37,6 +37,7 @@ async def create_new_pressure( async def search_pressure( session: AsyncSession = Depends(deps.get_session), limit: int = Query(100, ge=1, le=1000), + offset: int = Query(0, ge=0), start_date: datetime | None = Query( None, description="Filter readings from this date (ISO 8601)" ), @@ -51,6 +52,6 @@ async def search_pressure( if end_date: query = query.where(Pressure.create_time <= end_date) - query = query.order_by(Pressure.create_time.desc()).limit(limit) + query = query.order_by(Pressure.create_time.desc()).offset(offset).limit(limit) pressure_list: ScalarResult[Pressure] = await session.scalars(query) return list(pressure_list.all()) diff --git a/app/api/endpoints/temperature.py b/app/api/endpoints/temperature.py index aad3721..3e5a490 100644 --- a/app/api/endpoints/temperature.py +++ b/app/api/endpoints/temperature.py @@ -32,11 +32,12 @@ async def create_new_temperature( "/search", response_model=list[TemperatureResponse], status_code=status.HTTP_200_OK, - description="Search temperature readings with optional date range and limit.", + description="Search temperature readings with optional date range, limit, and offset pagination.", ) async def search_temperature( session: AsyncSession = Depends(deps.get_session), limit: int = Query(100, ge=1, le=1000), + offset: int = Query(0, ge=0), start_date: datetime | None = Query( None, description="Filter readings from this date (ISO 8601)" ), @@ -51,6 +52,6 @@ async def search_temperature( if end_date: query = query.where(Temperature.create_time <= end_date) - query = query.order_by(Temperature.create_time.desc()).limit(limit) + query = query.order_by(Temperature.create_time.desc()).offset(offset).limit(limit) temperature_list = await session.scalars(query) return list(temperature_list.all())