import express from 'express'; import pool from '../database.js'; const router = express.Router(); // GET all settings router.get('/', async (req, res) => { try { const [rows] = await pool.execute('SELECT setting_key, setting_value FROM settings'); // Convert array to object const settings = {}; rows.forEach(row => { settings[row.setting_key] = row.setting_value; }); res.json(settings); } catch (error) { console.error('Error fetching settings:', error); res.status(500).json({ error: 'Failed to fetch settings' }); } }); // GET single setting router.get('/:key', async (req, res) => { try { const [rows] = await pool.execute( 'SELECT setting_value FROM settings WHERE setting_key = ?', [req.params.key] ); if (rows.length === 0) { return res.status(404).json({ error: 'Setting not found' }); } res.json({ key: req.params.key, value: rows[0].setting_value }); } catch (error) { console.error('Error fetching setting:', error); res.status(500).json({ error: 'Failed to fetch setting' }); } }); // PUT update settings (bulk) router.put('/', async (req, res) => { try { const settings = req.body; for (const [key, value] of Object.entries(settings)) { await pool.execute(` INSERT INTO settings (setting_key, setting_value) VALUES (?, ?) ON DUPLICATE KEY UPDATE setting_value = ? `, [key, value, value]); } res.json({ status: 'success', message: 'Settings updated' }); } catch (error) { console.error('Error updating settings:', error); res.status(500).json({ error: 'Failed to update settings' }); } }); // PUT update single setting router.put('/:key', async (req, res) => { try { const { value } = req.body; await pool.execute(` INSERT INTO settings (setting_key, setting_value) VALUES (?, ?) ON DUPLICATE KEY UPDATE setting_value = ? `, [req.params.key, value, value]); res.json({ status: 'success', message: 'Setting updated' }); } catch (error) { console.error('Error updating setting:', error); res.status(500).json({ error: 'Failed to update setting' }); } }); export default router;