diff --git a/backend/app/api/todos.py b/backend/app/api/todos.py index 52fda31..f03392b 100644 --- a/backend/app/api/todos.py +++ b/backend/app/api/todos.py @@ -18,8 +18,8 @@ async def list_todos( status: str | None = "pending", priority: str | None = None, tag: str | None = None, - due_after: str | None = None, - due_before: str | None = None, + due_after: datetime | None = None, + due_before: datetime | None = None, limit: int = 200, session: AsyncSession = Depends(get_session), ): @@ -33,13 +33,14 @@ async def list_todos( if tag: conditions.append(TodoItem.tags.contains([tag])) if due_after: - conditions.append(TodoItem.due_date >= datetime.fromisoformat(due_after)) + conditions.append(TodoItem.due_date >= due_after) if due_before: - conditions.append(TodoItem.due_date <= datetime.fromisoformat(due_before)) + conditions.append(TodoItem.due_date <= due_before) stmt = select(TodoItem) if conditions: stmt = stmt.where(and_(*conditions)) + stmt = stmt.order_by(TodoItem.due_date.asc().nulls_last(), TodoItem.created_at.desc()) stmt = stmt.limit(limit) result = await session.execute(stmt) return result.scalars().all()