const express = require('express'); const fs = require('fs'); const multer = require('multer'); const { authenticate, requireAdmin } = require('../middleware/auth'); const router = express.Router(); const DB_PATH = process.env.DB_PATH || '/data/dickendock.db'; const upload = multer({ dest: '/tmp/' }); // GET /api/admin/backup router.get('/backup', authenticate, requireAdmin, (req, res) => { if (!fs.existsSync(DB_PATH)) return res.status(404).json({ error: 'DB nicht gefunden' }); const date = new Date().toISOString().split('T')[0]; res.download(DB_PATH, `dickendock-backup-${date}.db`); }); // POST /api/admin/restore router.post('/restore', authenticate, requireAdmin, upload.single('database'), (req, res) => { if (!req.file) return res.status(400).json({ error: 'Keine Datei erhalten' }); try { if (fs.existsSync(DB_PATH)) fs.copyFileSync(DB_PATH, DB_PATH + '.bak'); fs.copyFileSync(req.file.path, DB_PATH); fs.unlinkSync(req.file.path); res.json({ success: true }); } catch (e) { res.status(500).json({ error: e.message }); } }); module.exports = router;