diff --git a/src/routes/api/cospend/monthly-expenses/+server.ts b/src/routes/api/cospend/monthly-expenses/+server.ts index bf4ff75..0ea4d1a 100644 --- a/src/routes/api/cospend/monthly-expenses/+server.ts +++ b/src/routes/api/cospend/monthly-expenses/+server.ts @@ -5,13 +5,13 @@ import { dbConnect } from '../../../../utils/db'; export const GET: RequestHandler = async ({ url, locals }) => { const session = await locals.auth(); - + if (!session || !session.user?.nickname) { return json({ error: 'Unauthorized' }, { status: 401 }); } await dbConnect(); - + try { // Get query parameters for date range (default to last 12 months) @@ -20,10 +20,6 @@ export const GET: RequestHandler = async ({ url, locals }) => { const startDate = new Date(); startDate.setMonth(startDate.getMonth() - monthsBack); - // First, let's get all payments and see what we have - console.log('Searching for payments for user:', session.user.nickname); - console.log('Date range:', startDate.toISOString(), 'to', endDate.toISOString()); - const totalPayments = await Payment.countDocuments(); const paymentsInRange = await Payment.countDocuments({ date: { @@ -36,14 +32,9 @@ export const GET: RequestHandler = async ({ url, locals }) => { $gte: startDate, $lte: endDate }, - category: { $ne: 'settlement' }, - $or: [ - { paidBy: session.user.nickname }, - { createdBy: session.user.nickname } - ] + category: { $ne: 'settlement' } }); - console.log('Total payments:', totalPayments, 'In date range:', paymentsInRange, 'User expenses:', expensePayments); - + // Aggregate payments by month and category const pipeline = [ { @@ -54,11 +45,6 @@ export const GET: RequestHandler = async ({ url, locals }) => { }, // Exclude settlements - only show actual expenses category: { $ne: 'settlement' }, - // Only include payments where current user is involved - $or: [ - { paidBy: session.user.nickname }, - { createdBy: session.user.nickname } - ] } }, { @@ -109,20 +95,20 @@ export const GET: RequestHandler = async ({ url, locals }) => { results.forEach((result: any) => { const { yearMonth, category } = result._id; const amount = result.totalAmount; - + categories.add(category); - + if (!monthsMap.has(yearMonth)) { monthsMap.set(yearMonth, {}); } - + monthsMap.get(yearMonth)[category] = amount; }); // Convert to arrays for Chart.js const months = Array.from(monthsMap.keys()).sort(); const categoryList = Array.from(categories).sort(); - + const datasets = categoryList.map((category: string) => ({ label: category, data: months.map(month => monthsMap.get(month)[category] || 0) @@ -142,4 +128,4 @@ export const GET: RequestHandler = async ({ url, locals }) => { console.error('Error fetching monthly expenses:', error); return json({ error: 'Failed to fetch monthly expenses' }, { status: 500 }); } -}; \ No newline at end of file +}; diff --git a/src/routes/cospend/+page.svelte b/src/routes/cospend/+page.svelte index cb033eb..d1faf8b 100644 --- a/src/routes/cospend/+page.svelte +++ b/src/routes/cospend/+page.svelte @@ -66,13 +66,11 @@ async function fetchMonthlyExpenses() { try { expensesLoading = true; - console.log('Fetching monthly expenses...'); const response = await fetch('/api/cospend/monthly-expenses'); if (!response.ok) { throw new Error('Failed to fetch monthly expenses'); } monthlyExpensesData = await response.json(); - console.log('Monthly expenses data:', monthlyExpensesData); } catch (err) { console.error('Error fetching monthly expenses:', err); // Don't show this error in the main error state @@ -170,15 +168,15 @@ {#if expensesLoading}
Loading monthly expenses chart...
{:else if monthlyExpensesData.datasets && monthlyExpensesData.datasets.length > 0} - {:else}
- Debug: expensesLoading={expensesLoading}, - datasets={monthlyExpensesData.datasets?.length || 0}, + Debug: expensesLoading={expensesLoading}, + datasets={monthlyExpensesData.datasets?.length || 0}, data={JSON.stringify(monthlyExpensesData)}
{/if}