import { NextRequest, NextResponse } from "next/server"; import { withdrawalTransactionDummyData, withdrawalTransactionsColumns, withdrawalTransactionsSearchLabels, } from "./mockData"; export async function GET(request: NextRequest) { const { searchParams } = new URL(request.url); const userId = searchParams.get("userId"); const status = searchParams.get("status"); const withdrawalMethod = searchParams.get("withdrawalMethod"); const dateTimeStart = searchParams.get("dateTime_start"); const dateTimeEnd = searchParams.get("dateTime_end"); let filteredTransactions = [...withdrawalTransactionDummyData]; if (userId) { filteredTransactions = filteredTransactions.filter( (tx) => tx.userId.toString() === userId, ); } if (status) { filteredTransactions = filteredTransactions.filter( (tx) => tx.status.toLowerCase() === status.toLowerCase(), ); } if (dateTimeStart && dateTimeEnd) { const start = new Date(dateTimeStart); const end = new Date(dateTimeEnd); if (isNaN(start.getTime()) || isNaN(end.getTime())) { return NextResponse.json( { error: "Invalid date range", }, { status: 400 }, ); } filteredTransactions = filteredTransactions.filter((tx) => { const txDate = new Date(tx.dateTime); if (isNaN(txDate.getTime())) { return false; } return txDate >= start && txDate <= end; }); } if (withdrawalMethod) { filteredTransactions = filteredTransactions.filter( (tx) => tx.withdrawalMethod.toLowerCase() === withdrawalMethod.toLowerCase(), ); } return NextResponse.json({ tableRows: filteredTransactions, tableSearchLabels: withdrawalTransactionsSearchLabels, tableColumns: withdrawalTransactionsColumns, }); }