From 2a7aaab17061d2d0e6289e37f297b22b7aa2974c Mon Sep 17 00:00:00 2001 From: Rodrigo Tavares Date: Tue, 4 Nov 2025 12:59:42 -0300 Subject: [PATCH] Include transactions in exported data --- src/app/api/download/route.ts | 36 +++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/app/api/download/route.ts b/src/app/api/download/route.ts index 8c3c142..f5cc262 100644 --- a/src/app/api/download/route.ts +++ b/src/app/api/download/route.ts @@ -32,8 +32,44 @@ export async function POST(req: Request) { ); } + let offset = 0; + const limit = 1000; + const expenses = []; + while (true) { + const expense_response = await fetch( + `${SPLITWISE_API_URL}/get_expenses?offset=${offset}&limit=${limit}`, + { + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${apiKey}`, + }, + } + ); + + if (!expense_response.ok) { + return Response.json( + { error: "Error in getting expenses" }, + { status: expense_response.status } + ); + } + + let expenses_json = await expense_response.json(); + if (expenses_json.expenses.length === 0) { + break; + } + + expenses.push(...expenses_json.expenses); + + if (expenses_json.expenses.length < limit) { + break; + } + + offset += limit; + } + return Response.json({ friends: (await friend_response.json()).friends, groups: (await group_response.json()).groups, + expenses, }); }