From c16ef77beb7028356b7f59b4185148b9bc4a3fde Mon Sep 17 00:00:00 2001 From: multipleof4 Date: Sun, 15 Mar 2026 16:50:58 -0700 Subject: [PATCH] Feat: Filter trades by strategy query param --- app/api/trades/route.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/app/api/trades/route.js b/app/api/trades/route.js index 4ba3e1c..8fc231c 100644 --- a/app/api/trades/route.js +++ b/app/api/trades/route.js @@ -11,12 +11,15 @@ function normalizeRows(result) { return []; } -export async function GET() { +export async function GET(req) { const url = process.env.SURREAL_URL; if (!url) { return NextResponse.json({ trades: [], error: 'No DB configured' }); } + const { searchParams } = new URL(req.url); + const strategyFilter = searchParams.get('strategy'); + let client = null; try { @@ -25,7 +28,17 @@ export async function GET() { await client.signin({ username: process.env.SURREAL_USER, password: process.env.SURREAL_PASS }); await client.use({ namespace: 'kalbot', database: 'kalbot' }); - const result = await client.query('SELECT * FROM paper_positions ORDER BY entryTime DESC LIMIT 50'); + let query = 'SELECT * FROM paper_positions'; + const vars = {}; + + if (strategyFilter) { + query += ' WHERE strategy = $strategy'; + vars.strategy = strategyFilter; + } + + query += ' ORDER BY entryTime DESC LIMIT 50'; + + const result = await client.query(query, vars); const trades = normalizeRows(result); return NextResponse.json({ trades });