From 651f1e2b6ddbb50021d000a5a542d21196784670 Mon Sep 17 00:00:00 2001 From: Rohan Date: Tue, 21 Jul 2026 19:32:02 +0530 Subject: [PATCH] Fix task bugs and add search filter --- app/service.py | 17 ++++++++++++----- data/tasks.json | 6 +++--- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/app/service.py b/app/service.py index 8022b93..098280d 100644 --- a/app/service.py +++ b/app/service.py @@ -14,11 +14,18 @@ def list_tasks(status: str | None = None, q: str | None = None) -> list[dict[str for task in tasks: # Instructor note: intentional bug for the lab. # This uses the literal string "status" instead of the query parameter value. - if status and task["status"] != "status": + if status and task["status"] != status: continue # Instructor note: partial feature for the lab. # The route already accepts `q`, but search is not implemented yet. + if q: + query = q.lower() + title = task.get("title", "").lower() + description = task.get("description", "").lower() + if query not in title and query not in description: + continue + filtered.append(task) return filtered @@ -53,12 +60,12 @@ def complete_task(task_id: int) -> dict[str, Any] | None: for task in tasks: if task["id"] == task_id: - updated_task = dict(task) - updated_task["status"] = "done" - updated_task["completed_at"] = datetime.now(timezone.utc).isoformat() + task["status"] = "done" + task["completed_at"] = datetime.now(timezone.utc).isoformat() + save_tasks(tasks) # Instructor note: intentional bug for the lab. # The updated task is returned, but the stored list is never updated or saved. - return updated_task + return task return None diff --git a/data/tasks.json b/data/tasks.json index 8cc3396..7780b8d 100644 --- a/data/tasks.json +++ b/data/tasks.json @@ -21,10 +21,10 @@ "id": 3, "title": "Plan workshop agenda", "description": "Outline topics for the partner onboarding session.", - "status": "open", + "status": "done", "priority": "medium", "created_at": "2026-02-27T11:45:00+00:00", - "completed_at": null + "completed_at": "2026-07-21T14:00:31.277346+00:00" }, { "id": 4, @@ -35,4 +35,4 @@ "created_at": "2026-03-01T08:20:00+00:00", "completed_at": null } -] +] \ No newline at end of file