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