summaryrefslogtreecommitdiff
path: root/admin-panel/src/server/routes/settings.ts
diff options
context:
space:
mode:
Diffstat (limited to 'admin-panel/src/server/routes/settings.ts')
-rw-r--r--admin-panel/src/server/routes/settings.ts35
1 files changed, 35 insertions, 0 deletions
diff --git a/admin-panel/src/server/routes/settings.ts b/admin-panel/src/server/routes/settings.ts
new file mode 100644
index 0000000..4eed6f1
--- /dev/null
+++ b/admin-panel/src/server/routes/settings.ts
@@ -0,0 +1,35 @@
+import { Router, Request, Response } from 'express';
+import { getAdminDb } from '../db.js';
+
+const router = Router();
+
+// GET /api/settings
+router.get('/', (_req: Request, res: Response) => {
+ const db = getAdminDb();
+ const rows = db.prepare('SELECT key, value FROM settings').all() as Array<{
+ key: string;
+ value: string;
+ }>;
+ const settings: Record<string, string> = {};
+ for (const row of rows) {
+ settings[row.key] = row.value;
+ }
+ res.json(settings);
+});
+
+// PATCH /api/settings
+router.patch('/', (req: Request, res: Response) => {
+ const db = getAdminDb();
+ const stmt = db.prepare('INSERT OR REPLACE INTO settings (key, value) VALUES (?, ?)');
+
+ const updates = req.body as Record<string, string>;
+ for (const [key, value] of Object.entries(updates)) {
+ if (typeof key === 'string' && typeof value === 'string') {
+ stmt.run(key, value);
+ }
+ }
+
+ res.status(204).send();
+});
+
+export default router;