From 3b8520da1f4163ab6bd2e1a85f415520f9aae1ca Mon Sep 17 00:00:00 2001 From: Alma Date: Sat, 12 Apr 2025 12:31:24 +0200 Subject: [PATCH] working leantime widget 2 --- app/api/leantime/status-labels/route.ts | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/app/api/leantime/status-labels/route.ts b/app/api/leantime/status-labels/route.ts index 4129daac..a530e08e 100644 --- a/app/api/leantime/status-labels/route.ts +++ b/app/api/leantime/status-labels/route.ts @@ -10,6 +10,9 @@ export async function GET() { } try { + console.log('Fetching status labels for user:', session.user.id); + console.log('Using LEANTIME_TOKEN:', process.env.LEANTIME_TOKEN ? 'Present' : 'Missing'); + const response = await fetch('https://agilite.slm-lab.net/api/jsonrpc', { method: 'POST', headers: { @@ -26,21 +29,34 @@ export async function GET() { }) }); + const responseText = await response.text(); + console.log('Leantime API Response:', responseText); + if (!response.ok) { - throw new Error('Failed to fetch status labels from Leantime'); + throw new Error(`Leantime API returned ${response.status}: ${responseText}`); } - const data = await response.json(); + let data; + try { + data = JSON.parse(responseText); + } catch (e) { + console.error('Failed to parse Leantime response:', e); + throw new Error('Invalid JSON response from Leantime'); + } if (!data.result) { + console.log('No result in Leantime response'); return NextResponse.json({ statusLabels: [] }); } return NextResponse.json({ statusLabels: data.result }); } catch (error) { - console.error('Error fetching status labels:', error); + console.error('Detailed error in status labels fetch:', error); return NextResponse.json( - { error: "Failed to fetch status labels" }, + { + error: "Failed to fetch status labels", + details: error instanceof Error ? error.message : 'Unknown error' + }, { status: 500 } ); }