feat: Add offset parameter for pagination in humidity, pressure, and temperature search endpoints

Co-authored-by: Copilot <copilot@github.com>
This commit is contained in:
2026-04-22 23:07:40 +08:00
co-authored by Copilot
parent 6f27b6831e
commit 5f320e9cda
3 changed files with 7 additions and 4 deletions
+2 -1
View File
@@ -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())
+2 -1
View File
@@ -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())
+3 -2
View File
@@ -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())