Skip to content

[P1] Replace mock data with database queries in GET /api/projects/{id}/tasks #104

Description

@frankbria

Overview

The /api/projects/{id}/tasks endpoint returns hardcoded mock data instead of querying the database.

Current State

File: codeframe/ui/routers/projects.py lines 220-229

@router.get("/{project_id}/tasks")
async def get_tasks(project_id: int, status: str | None = None, limit: int = 50):
    """Get project tasks."""
    # TODO: Query database with filters
    return {
        "tasks": [
            {
                "id": 27,
                "title": "JWT refresh token flow",
                # ... hardcoded mock data

Expected Behavior

  • Query tasks table from database with filters
  • Support filtering by status, assignee, priority
  • Apply limit and offset for pagination
  • Return actual task data as Task objects
  • Handle empty results gracefully

Implementation Requirements

  1. Import Database instance (from FastAPI dependency injection)
  2. Call db.get_tasks_for_project(project_id, filters={'status': status})
  3. Convert Task objects to dictionaries for JSON response
  4. Add pagination parameters (limit, offset)
  5. Handle database errors gracefully

Acceptance Criteria

  • Endpoint queries actual database instead of mocking
  • Filtering by status works correctly
  • Pagination parameters respected
  • Empty results return empty array (not error)
  • Integration tests verify database integration

Priority

P1 - Critical: Dashboard needs real data to display task progress.

References

  • Issues Analysis: CODEFRAME_ISSUES_ANALYSIS.md lines 76-82
  • User Documentation: CODEFRAME_USER_DOCUMENTATION.md lines 242

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions