Bookings/payments/linktree: fix payment method display, event filter, logo, search
- Bookings: align payment method labels with payments page (bank_transfer, tpago, etc), add sibling fallback - Payments: add event filter (single/multi), add search by name/email/event - Linktree: use Spanglish logo instead of icon - API: payments getAll supports eventId/eventIds Made-with: Cursor
This commit is contained in:
@@ -30,6 +30,8 @@ paymentsRouter.get('/', requireAuth(['admin']), async (c) => {
|
||||
const status = c.req.query('status');
|
||||
const provider = c.req.query('provider');
|
||||
const pendingApproval = c.req.query('pendingApproval');
|
||||
const eventId = c.req.query('eventId');
|
||||
const eventIds = c.req.query('eventIds');
|
||||
|
||||
// Get all payments with their associated tickets
|
||||
let allPayments = await dbAll<any>(
|
||||
@@ -55,7 +57,7 @@ paymentsRouter.get('/', requireAuth(['admin']), async (c) => {
|
||||
}
|
||||
|
||||
// Enrich with ticket and event data
|
||||
const enrichedPayments = await Promise.all(
|
||||
let enrichedPayments = await Promise.all(
|
||||
allPayments.map(async (payment: any) => {
|
||||
const ticket = await dbGet<any>(
|
||||
(db as any)
|
||||
@@ -94,6 +96,16 @@ paymentsRouter.get('/', requireAuth(['admin']), async (c) => {
|
||||
})
|
||||
);
|
||||
|
||||
// Filter by event(s)
|
||||
if (eventId) {
|
||||
enrichedPayments = enrichedPayments.filter((p: any) => p.event?.id === eventId);
|
||||
} else if (eventIds) {
|
||||
const ids = eventIds.split(',').map((s: string) => s.trim()).filter(Boolean);
|
||||
if (ids.length > 0) {
|
||||
enrichedPayments = enrichedPayments.filter((p: any) => p.event && ids.includes(p.event.id));
|
||||
}
|
||||
}
|
||||
|
||||
return c.json({ payments: enrichedPayments });
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user