From 06842efbbd83f158515e2b03f98d383d0c371f7a Mon Sep 17 00:00:00 2001 From: root Date: Wed, 9 Jul 2025 14:25:13 +0200 Subject: [PATCH] feat: Add settings API endpoint - Add GET endpoint to retrieve current settings - Add POST endpoint to update settings - Add PUT endpoint to update individual settings fields --- app/api/settings/route.ts | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 app/api/settings/route.ts diff --git a/app/api/settings/route.ts b/app/api/settings/route.ts new file mode 100644 index 0000000..13bc30b --- /dev/null +++ b/app/api/settings/route.ts @@ -0,0 +1,36 @@ +import { NextRequest, NextResponse } from 'next/server' +import { settingsManager } from '../../../lib/settings' + +export async function GET() { + try { + const settings = await settingsManager.loadSettings() + return NextResponse.json(settings) + } catch (e: any) { + return NextResponse.json({ error: e.message }, { status: 500 }) + } +} + +export async function POST(req: NextRequest) { + try { + const updates = await req.json() + const settings = await settingsManager.updateSettings(updates) + return NextResponse.json(settings) + } catch (e: any) { + return NextResponse.json({ error: e.message }, { status: 500 }) + } +} + +export async function PUT(req: NextRequest) { + try { + const { symbol, timeframe, layouts } = await req.json() + + if (symbol) await settingsManager.setSymbol(symbol) + if (timeframe) await settingsManager.setTimeframe(timeframe) + if (layouts) await settingsManager.setLayouts(layouts) + + const settings = await settingsManager.loadSettings() + return NextResponse.json(settings) + } catch (e: any) { + return NextResponse.json({ error: e.message }, { status: 500 }) + } +}