// Settings Routes import express from 'express'; import pool from '../db.js'; const router = express.Router(); // POST /api/getSettings router.post('/getSettings', async (req, res) => { try { const [rows] = await pool.query('SELECT setting_key, setting_value FROM settings'); const settings = { appLogo: '', logoPemprov: '/images/logo_pemprov.png', kopSurat: '/images/kop_surat.png', tahunAnggaran: new Date().getFullYear().toString(), activeUserRole: 'Staf Sarpras', activeUserName: 'Administrator', headmaster: { name: '', nip: '' }, wakasek: { name: '', nip: '' }, assetAssistant: { name: '', nip: '' } }; rows.forEach(row => { const key = row.setting_key; const value = row.setting_value; if (key === 'appLogo') settings.appLogo = value; else if (key === 'logoPemprov') settings.logoPemprov = value; else if (key === 'kopSurat') settings.kopSurat = value; else if (key === 'tahunAnggaran') settings.tahunAnggaran = value; else if (key === 'activeUserRole') settings.activeUserRole = value; else if (key === 'activeUserName') settings.activeUserName = value; else if (key === 'headmaster_name') settings.headmaster.name = value; else if (key === 'headmaster_nip') settings.headmaster.nip = value; else if (key === 'wakasek_name') settings.wakasek.name = value; else if (key === 'wakasek_nip') settings.wakasek.nip = value; else if (key === 'assetAssistant_name') settings.assetAssistant.name = value; else if (key === 'assetAssistant_nip') settings.assetAssistant.nip = value; }); res.json({ status: 'success', data: settings }); } catch (error) { console.error('Get settings error:', error); res.json({ status: 'error', message: error.message }); } }); // POST /api/saveSettings router.post('/saveSettings', async (req, res) => { try { const settings = req.body; const upsert = async (key, value) => { await pool.query( `INSERT INTO settings (setting_key, setting_value) VALUES (?, ?) ON DUPLICATE KEY UPDATE setting_value = VALUES(setting_value)`, [key, value || ''] ); }; // Save all settings if (settings.appLogo !== undefined) await upsert('appLogo', settings.appLogo); if (settings.logoPemprov !== undefined) await upsert('logoPemprov', settings.logoPemprov); if (settings.kopSurat !== undefined) await upsert('kopSurat', settings.kopSurat); if (settings.tahunAnggaran !== undefined) await upsert('tahunAnggaran', settings.tahunAnggaran); if (settings.activeUserRole !== undefined) await upsert('activeUserRole', settings.activeUserRole); if (settings.activeUserName !== undefined) await upsert('activeUserName', settings.activeUserName); if (settings.headmaster) { await upsert('headmaster_name', settings.headmaster.name); await upsert('headmaster_nip', settings.headmaster.nip); } if (settings.wakasek) { await upsert('wakasek_name', settings.wakasek.name); await upsert('wakasek_nip', settings.wakasek.nip); } if (settings.assetAssistant) { await upsert('assetAssistant_name', settings.assetAssistant.name); await upsert('assetAssistant_nip', settings.assetAssistant.nip); } res.json({ status: 'success', message: 'Pengaturan berhasil disimpan' }); } catch (error) { console.error('Save settings error:', error); res.json({ status: 'error', message: error.message }); } }); export default router;