From f58b02628d56328835512bf945523ecc2105c3e0 Mon Sep 17 00:00:00 2001 From: Alma Date: Sat, 12 Apr 2025 14:13:43 +0200 Subject: [PATCH] working leantime widget 26 --- app/api/leantime/tasks/route.ts | 29 ++++++++--------------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/app/api/leantime/tasks/route.ts b/app/api/leantime/tasks/route.ts index d67a8a4d..debba36a 100644 --- a/app/api/leantime/tasks/route.ts +++ b/app/api/leantime/tasks/route.ts @@ -9,7 +9,7 @@ interface Task { projectId: number; status: string; dueDate: string | null; - priority: number; + milestone: string | null; details: string | null; } @@ -125,37 +125,24 @@ export async function GET() { projectsData.result.map((project: any) => [project.id, project.name]) ); - // Transform and categorize the tasks + // Transform and sort the tasks const tasks = data.result.map((task: any) => { - const dueDate = task.dateToFinish ? new Date(task.dateToFinish * 1000) : null; - const now = new Date(); + const dueDate = task.dateToFinish ? new Date(task.dateToFinish * 1000).toISOString() : null; - let status = 'upcoming'; - if (dueDate && dueDate < now) { - status = 'overdue'; - } else if (task.status === 'done' || task.status === 'closed') { - status = 'completed'; - } else if (task.status === 'inprogress') { - status = 'in_progress'; - } - return { id: task.id, headline: task.headline, projectName: projectsMap.get(task.projectId) || `Project ${task.projectId}`, projectId: task.projectId, - status: status, - dueDate: dueDate ? dueDate.toISOString() : null, - priority: task.priority, - details: task.description ? task.description.substring(0, 100) : null + status: task.status, + dueDate: dueDate, + milestone: task.milestoneid || null, + details: task.description || null }; }); - // Sort tasks by due date and status + // Sort tasks by due date (overdue first) tasks.sort((a: Task, b: Task) => { - if (a.status === 'overdue' && b.status !== 'overdue') return -1; - if (a.status !== 'overdue' && b.status === 'overdue') return 1; - if (!a.dueDate && !b.dueDate) return 0; if (!a.dueDate) return 1; if (!b.dueDate) return -1; return new Date(a.dueDate).getTime() - new Date(b.dueDate).getTime();