import { NextRequest, NextResponse } from 'next/server'; import { getAutotaskClient } from '@/lib/services/autotask-factory'; import { Task } from '@/lib/types/autotask'; export async function GET(request: NextRequest) { try { const client = getAutotaskClient(); const searchParams = request.nextUrl.searchParams; const resourceId = searchParams.get('resourceId'); const projectId = searchParams.get('projectId'); let tasks: Task[] = []; if (resourceId) { tasks = await client.getTasksByResource(parseInt(resourceId)); } else if (projectId) { tasks = await client.getTasksByProject(parseInt(projectId)); } else { // Get all open tasks tasks = await client.queryEntity('Tasks', { filter: [{ op: 'noteq', field: 'status', value: 5 }], }); } return NextResponse.json({ tasks }); } catch (error) { console.error('Error fetching tasks:', error); return NextResponse.json( { error: error instanceof Error ? error.message : 'Failed to fetch tasks' }, { status: 500 } ); } } export async function POST(request: NextRequest) { try { const client = getAutotaskClient(); const body = await request.json(); const task = await client.createTask(body); return NextResponse.json({ task }); } catch (error) { console.error('Error creating task:', error); return NextResponse.json( { error: error instanceof Error ? error.message : 'Failed to create task' }, { status: 500 } ); } }