/** * Task API Client * Handles task-related API requests */ import type { Task } from "@mosaic/shared"; import type { TaskStatus, TaskPriority } from "@mosaic/shared"; import { apiGet, type ApiResponse } from "./client"; export interface TaskFilters { status?: TaskStatus; priority?: TaskPriority; workspaceId?: string; } /** * Fetch tasks with optional filters */ export async function fetchTasks(filters?: TaskFilters): Promise { const params = new URLSearchParams(); // Add filter parameters (not workspace ID - that goes in header) if (filters?.status) { params.append("status", filters.status); } if (filters?.priority) { params.append("priority", filters.priority); } const queryString = params.toString(); const endpoint = queryString ? `/api/tasks?${queryString}` : "/api/tasks"; // Pass workspaceId via header (X-Workspace-Id) instead of query string const response = await apiGet>(endpoint, filters?.workspaceId); return response.data; }