diff --git a/app/api/leantime/status-labels/route.ts b/app/api/leantime/status-labels/route.ts index 6ce7a2aa..7f40e466 100644 --- a/app/api/leantime/status-labels/route.ts +++ b/app/api/leantime/status-labels/route.ts @@ -26,7 +26,7 @@ async function getLeantimeUserId(email: string): Promise { } try { - console.log('Fetching Leantime users with token:', process.env.LEANTIME_TOKEN ? 'Token present' : 'Token missing'); + console.log('Fetching Leantime user with token:', process.env.LEANTIME_TOKEN ? 'Token present' : 'Token missing'); const response = await fetch('https://agilite.slm-lab.net/api/jsonrpc', { method: 'POST', @@ -36,34 +36,35 @@ async function getLeantimeUserId(email: string): Promise { }, body: JSON.stringify({ jsonrpc: '2.0', - method: 'leantime.rpc.users.getAll', + method: 'leantime.rpc.Users.Users.getUserByEmail', id: 1, + params: { + email: email + } }), }); if (!response.ok) { - console.error('Failed to fetch users from Leantime:', { + console.error('Failed to fetch user from Leantime:', { status: response.status, statusText: response.statusText }); - throw new Error(`Failed to fetch users from Leantime: ${response.status} ${response.statusText}`); + throw new Error(`Failed to fetch user from Leantime: ${response.status} ${response.statusText}`); } const data = await response.json(); - console.log('Leantime users response:', data); + console.log('Leantime user response:', data); - const user = data.result.find((u: any) => u.email === email); - console.log('Found user:', user ? 'Yes' : 'No'); - - if (user) { - // Cache the user ID - userCache.set(email, user.id); - // Clear cache after 5 minutes - setTimeout(() => userCache.delete(email), 5 * 60 * 1000); - return user.id; + if (!data.result || data.result === false) { + console.log('User not found in Leantime'); + return null; } - return null; + // Cache the user ID + userCache.set(email, data.result.id); + // Clear cache after 5 minutes + setTimeout(() => userCache.delete(email), 5 * 60 * 1000); + return data.result.id; } catch (error) { console.error('Error getting Leantime user ID:', error); return null;