import { NextRequest, NextResponse } from 'next/server' import { auth } from '@/auth' import { getAllTasks, createTask } from '@/lib/vikunja-client' export async function GET(request: NextRequest) { const session = await auth() if (!session?.user) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } try { const { searchParams } = request.nextUrl const tasks = await getAllTasks({ page: searchParams.get('page') ? parseInt(searchParams.get('page')!, 10) : undefined, per_page: searchParams.get('per_page') ? parseInt(searchParams.get('per_page')!, 10) : 50, sort_by: searchParams.get('sort_by') || undefined, order_by: searchParams.get('order_by') || undefined, filter: searchParams.get('filter') || undefined, }) return NextResponse.json(tasks) } catch (error) { const message = error instanceof Error ? error.message : 'Failed to fetch tasks' return NextResponse.json({ error: message }, { status: 502 }) } } export async function POST(request: Request) { const session = await auth() if (!session?.user) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }) } try { const body = await request.json() const { projectId, ...taskData } = body if (!projectId) { return NextResponse.json({ error: 'projectId is required' }, { status: 400 }) } const task = await createTask(projectId, taskData) return NextResponse.json(task, { status: 201 }) } catch (error) { const message = error instanceof Error ? error.message : 'Failed to create task' return NextResponse.json({ error: message }, { status: 502 }) } }