Files
dashcaddy/dashcaddy-api/routes/backups.js
Krystie 883cce27df Phase 3 (WIP): Refactor license, credentials, backups routes
- All use explicit deps instead of ctx
- Pattern consistent across all refactored routes
2026-03-22 11:09:55 +01:00

35 lines
1.3 KiB
JavaScript

const express = require('express');
const asyncHandler = require('../src/utils/async-handler');
module.exports = function({ backupManager }) {
const router = express.Router();
router.get('/backups/config', asyncHandler(async (req, res) => {
const config = backupManager.getConfig();
res.json({ success: true, config });
}, 'backups-config-get'));
router.post('/backups/config', asyncHandler(async (req, res) => {
backupManager.updateConfig(req.body);
res.json({ success: true, message: 'Backup configuration updated' });
}, 'backups-config-update'));
router.post('/backups/execute', asyncHandler(async (req, res) => {
const backup = await backupManager.executeBackup('manual', req.body);
res.json({ success: true, backup });
}, 'backups-execute'));
router.get('/backups/history', asyncHandler(async (req, res) => {
const limit = parseInt(req.query.limit) || 50;
const history = backupManager.getHistory(limit);
res.json({ success: true, history });
}, 'backups-history'));
router.post('/backups/restore/:backupId', asyncHandler(async (req, res) => {
const result = await backupManager.restoreBackup(req.params.backupId, req.body);
res.json({ success: true, result });
}, 'backups-restore'));
return router;
};