← back to Ken
src/app/api/workers/route.js
32 lines
import { NextResponse } from 'next/server';
export const dynamic = 'force-dynamic';
export async function POST(req) {
const body = await req.json();
const baseUrl = 'http://127.0.0.1:7800';
const workerMap = {
market_ingest: { url: `${baseUrl}/api/markets`, body: { action: 'ingest' } },
weather_fetch: { url: `${baseUrl}/api/weather`, body: { action: 'fetch_all' } },
run_predictions: { url: `${baseUrl}/api/models`, body: { action: 'run_predictions' } },
risk_scan: { url: `${baseUrl}/api/risk`, body: { action: 'evaluate', pYes: 0.5, marketMid: 0.5, spread: 0.05, liquidity: 1000 } },
paper_trade: { url: `${baseUrl}/api/trades`, body: { action: 'paper_cycle' } },
};
const worker = workerMap[body.worker];
if (!worker) return NextResponse.json({ error: `Unknown worker: ${body.worker}` }, { status: 400 });
try {
const res = await fetch(worker.url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(worker.body),
});
const data = await res.json();
return NextResponse.json({ message: `Worker ${body.worker} completed`, result: data });
} catch (err) {
return NextResponse.json({ error: err.message }, { status: 500 });
}
}