import { Router } from 'express'; import { eq } from 'drizzle-orm'; import { db } from '../db/client'; import { settings } from '../db/schema'; const router = Router(); const ALLOWED_KEYS = ['rabbitry_name', 'weight_unit', 'kit_prefix', 'theme'] as const; router.get('/', (req, res) => { const rows = db.select().from(settings).all(); const result: Record = {}; for (const row of rows) { result[row.key] = row.value; } res.json(result); }); router.patch('/', (req, res) => { const keys = Object.keys(req.body); const unknownKey = keys.find((key) => !ALLOWED_KEYS.includes(key as (typeof ALLOWED_KEYS)[number])); if (unknownKey) { res.status(400).json({ error: `Unknown setting: ${unknownKey}` }); return; } for (const key of keys) { db.update(settings).set({ value: req.body[key] }).where(eq(settings.key, key)).run(); } const rows = db.select().from(settings).all(); const result: Record = {}; for (const row of rows) { result[row.key] = row.value; } res.json(result); }); export default router;