From 63e619bb9273fa468738a4219eadd7311f7726a6 Mon Sep 17 00:00:00 2001 From: sion123 <450702724@qq.com> Date: Thu, 7 May 2026 02:27:18 +0800 Subject: [PATCH] feat(web): add config CRUD API routes --- web/server/routes/configs.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 web/server/routes/configs.ts diff --git a/web/server/routes/configs.ts b/web/server/routes/configs.ts new file mode 100644 index 0000000..63747a3 --- /dev/null +++ b/web/server/routes/configs.ts @@ -0,0 +1,26 @@ +import { Router } from 'express'; +import { randomUUID } from 'crypto'; +import { getDb } from '../db'; + +export const configsRouter = Router(); + +configsRouter.get('/', (_req, res) => { + const rows = getDb().prepare('SELECT * FROM configs ORDER BY key').all(); + res.json(rows); +}); + +configsRouter.get('/:key', (req, res) => { + const row = getDb().prepare('SELECT * FROM configs WHERE key = ?').get(req.params.key); + if (!row) return res.status(404).json({ error: 'Config not found' }); + res.json(row); +}); + +configsRouter.put('/:key', (req, res) => { + const { value } = req.body; + getDb().prepare(` + INSERT INTO configs (id, key, value, updated_at) + VALUES (?, ?, ?, datetime('now')) + ON CONFLICT(key) DO UPDATE SET value = excluded.value, updated_at = excluded.updated_at + `).run(randomUUID(), req.params.key, JSON.stringify(value)); + res.json({ key: req.params.key, ok: true }); +});