import { NextRequest, NextResponse } from 'next/server'; import { getAutotaskClient } from '@/lib/services/autotask-factory'; export async function GET( request: NextRequest, { params }: { params: Promise<{ id: string }> } ) { try { const { id } = await params; const client = getAutotaskClient(); // Get time entries for this ticket const timeEntries = await client.queryEntity('TimeEntries', { filter: [ { op: 'eq', field: 'ticketID', value: parseInt(id) } ], }); // Enrich with resource names const enrichedEntries = await Promise.all( timeEntries.map(async (entry: any) => { let resourceName = null; if (entry.resourceID) { try { const resource = await client.getEntityById('Resources', entry.resourceID) as any; resourceName = resource ? `${resource.firstName} ${resource.lastName}` : null; } catch (err) { console.error('Error fetching resource:', err); } } return { ...entry, resourceName, }; }) ); // Sort by date worked (most recent first) enrichedEntries.sort((a: any, b: any) => { const dateA = new Date(a.dateWorked || 0).getTime(); const dateB = new Date(b.dateWorked || 0).getTime(); return dateB - dateA; }); return NextResponse.json({ timeEntries: enrichedEntries, }); } catch (error) { console.error('Error fetching time entries:', error); return NextResponse.json( { error: 'Failed to fetch time entries' }, { status: 500 } ); } }