Export group expenses as JSON (Closes #42)

This commit is contained in:
Sebastien Castiel
2024-01-15 11:44:49 -05:00
parent 8abdcb7d6f
commit 28902ad0ea
2 changed files with 47 additions and 3 deletions

View File

@@ -0,0 +1,39 @@
import { getPrisma } from '@/lib/prisma'
import { NextResponse } from 'next/server'
export async function GET(
req: Request,
{ params: { groupId } }: { params: { groupId: string } },
) {
console.log({ groupId })
const prisma = await getPrisma()
const group = await prisma.group.findUnique({
where: { id: groupId },
select: {
id: true,
name: true,
currency: true,
expenses: {
select: {
expenseDate: true,
title: true,
category: { select: { grouping: true, name: true } },
amount: true,
paidById: true,
paidFor: { select: { participantId: true, shares: true } },
isReimbursement: true,
splitMode: true,
},
},
participants: { select: { id: true, name: true } },
},
})
if (!group)
return NextResponse.json({ error: 'Invalid group ID' }, { status: 404 })
return NextResponse.json(group, {
headers: {
'content-type': 'application/json',
'content-disposition': `attachment; filename="${group.name}.json"`,
},
})
}