| 123456789101112131415161718192021222324252627282930313233343536373839 |
- import { getExpenses, createExpense } from "@/lib/db/store";
- export async function GET(req: Request) {
- const { searchParams } = new URL(req.url);
- const status = searchParams.get("status") || undefined;
- const category = searchParams.get("category") || undefined;
- const expenseList = await getExpenses({ status, category });
- return Response.json({
- data: expenseList,
- total: expenseList.length,
- summary: {
- totalAmount: expenseList.reduce(
- (sum, e) => sum + parseFloat(e.amount as string),
- 0,
- ),
- byStatus: {
- pending: expenseList.filter((e) => e.status === "pending").length,
- approved: expenseList.filter((e) => e.status === "approved").length,
- rejected: expenseList.filter((e) => e.status === "rejected").length,
- },
- },
- });
- }
- export async function POST(req: Request) {
- const body = await req.json();
- const expense = await createExpense({
- vendor: body.vendor,
- category: body.category,
- amount: body.amount,
- date: body.date,
- description: body.description,
- });
- return Response.json(expense, { status: 201 });
- }
|