Added server-side saving for settings

This commit is contained in:
Trevor Mears
2025-12-31 15:35:37 -08:00
parent 404364b904
commit d1bfd1b9e7
7 changed files with 234 additions and 55 deletions
+56
View File
@@ -0,0 +1,56 @@
const express = require('express');
const router = express.Router();
const { settings, getDefaultSettings } = require('../db');
/**
* Get all settings
* GET /api/settings
*/
router.get('/', async (req, res) => {
try {
const currentSettings = await settings.get();
res.json(currentSettings);
} catch (err) {
console.error('Error getting settings:', err);
res.status(500).json({ error: err.message });
}
});
/**
* Update settings (partial update)
* PUT /api/settings
*/
router.put('/', async (req, res) => {
try {
const updates = req.body;
const updatedSettings = await settings.update(updates);
res.json(updatedSettings);
} catch (err) {
console.error('Error updating settings:', err);
res.status(500).json({ error: err.message });
}
});
/**
* Reset settings to defaults
* DELETE /api/settings
*/
router.delete('/', async (req, res) => {
try {
const defaultSettings = await settings.reset();
res.json(defaultSettings);
} catch (err) {
console.error('Error resetting settings:', err);
res.status(500).json({ error: err.message });
}
});
/**
* Get default settings (for reference)
* GET /api/settings/defaults
*/
router.get('/defaults', (req, res) => {
res.json(getDefaultSettings());
});
module.exports = router;