/** * GET /api/tasks - List all available tasks with user completion status */ import { NextRequest, NextResponse } from 'next/server'; import { requireAuth } from '@/app/lib/auth'; import { getActiveTasks, getUserCompletedTasks } from '@/app/lib/db/store'; import { TasksResponse, ApiResponse } from '@/app/lib/types'; export async function GET(request: NextRequest) { try { // Authenticate user const user = requireAuth(request); // Get all active tasks const available = getActiveTasks(); // Get user's completed tasks const completed = getUserCompletedTasks(user.id); const response: TasksResponse = { available, completed }; return NextResponse.json>( { success: true, data: response }, { status: 200 } ); } catch (error) { if (error instanceof Error && error.message === 'Unauthorized') { return NextResponse.json( { success: false, error: 'Unauthorized' }, { status: 401 } ); } console.error('Get tasks error:', error); return NextResponse.json( { success: false, error: 'Internal server error' }, { status: 500 } ); } }