34 lines
1.3 KiB
JavaScript
34 lines
1.3 KiB
JavaScript
const { createCrudRoutes } = require('../database/crud');
|
|
|
|
let db;
|
|
function init(database) { db = database; }
|
|
|
|
function setupRoutes(app, auth) {
|
|
app.get('/api/admin/hero-settings', auth.authenticateToken, auth.requireAdmin, (req, res) => {
|
|
db.all(`SELECT * FROM hero_settings ORDER BY id`, (err, rows) => {
|
|
if (err) return res.status(500).json({ error: 'Ошибка БД' });
|
|
const obj = {};
|
|
rows.forEach(r => { obj[r.key] = r.value; });
|
|
res.json(obj);
|
|
});
|
|
});
|
|
|
|
app.put('/api/admin/hero-settings', auth.authenticateToken, auth.requireAdmin, (req, res) => {
|
|
const entries = req.body;
|
|
if (!entries || typeof entries !== 'object') return res.status(400).json({ error: 'Неверные данные' });
|
|
const stmt = db.prepare(`UPDATE hero_settings SET value = ? WHERE key = ?`);
|
|
let count = 0;
|
|
for (const [key, value] of Object.entries(entries)) {
|
|
stmt.run(value, key, function() { count++; });
|
|
}
|
|
stmt.finalize();
|
|
res.json({ message: 'Обновлено', updated: count });
|
|
});
|
|
|
|
createCrudRoutes(app, auth, 'hero_stats', {
|
|
fields: ['label', 'value', 'is_dynamic', 'sort_order']
|
|
});
|
|
}
|
|
|
|
module.exports = { init, setupRoutes };
|