Co-authored-by: Cursor <[email protected]>
This commit is contained in:
lejay
2026-05-28 07:20:38 +02:00
co-authored by Cursor
parent 6923c319a1
commit 6c0d7e47b8
81 changed files with 21780 additions and 2986 deletions
+31 -3
View File
@@ -1,13 +1,41 @@
import pool from '../db/index.js';
import { run } from '../db/index.js';
function parseSettingValue(raw) {
if (typeof raw !== 'string') return raw;
if (/^-?\d+(\.\d+)?$/.test(raw)) return Number(raw);
if (raw === 'true') return true;
if (raw === 'false') return false;
return raw;
}
export async function getSettings(req, res) {
try {
const { rows } = await pool.query('SELECT key, value FROM settings');
const obj = {};
for (const r of rows) {
let v = r.value;
if (typeof v === 'string' && /^\d+$/.test(v)) v = Number(v);
obj[r.key] = v;
obj[r.key] = parseSettingValue(r.value);
}
res.json(obj);
} catch (err) {
res.status(500).json({ error: err.message });
}
}
export async function updateSettings(req, res) {
try {
const updates = req.body || {};
for (const [key, value] of Object.entries(updates)) {
await run(
'INSERT INTO settings (key, value) VALUES ($1, $2) ON CONFLICT(key) DO UPDATE SET value = excluded.value',
[key, String(value)]
);
}
// Return updated settings
const { rows } = await pool.query('SELECT key, value FROM settings');
const obj = {};
for (const r of rows) {
obj[r.key] = parseSettingValue(r.value);
}
res.json(obj);
} catch (err) {