Files
dashcaddy/dashcaddy-api/routes/config/index.js

46 lines
1.4 KiB
JavaScript

const express = require('express');
/**
* Config routes aggregator
* @param {Object} ctx - Application context (for backward compatibility)
* @returns {express.Router}
*/
module.exports = function(ctx) {
const router = express.Router();
// Common deps for all config routes
const baseDeps = {
configStateManager: ctx.configStateManager,
servicesStateManager: ctx.servicesStateManager,
asyncHandler: ctx.asyncHandler,
log: ctx.log,
CONFIG_FILE: ctx.CONFIG_FILE,
errorResponse: ctx.errorResponse,
loadSiteConfig: ctx.loadSiteConfig
};
// Additional deps for backup route
const backupDeps = {
...baseDeps,
SERVICES_FILE: ctx.SERVICES_FILE,
CONFIG_FILE: ctx.CONFIG_FILE,
TOTP_CONFIG_FILE: ctx.TOTP_CONFIG_FILE,
TAILSCALE_CONFIG_FILE: ctx.TAILSCALE_CONFIG_FILE,
NOTIFICATIONS_FILE: ctx.NOTIFICATIONS_FILE,
caddy: ctx.caddy,
dns: ctx.dns,
fetchT: ctx.fetchT,
totpConfig: ctx.totpConfig,
credentialManager: ctx.credentialManager,
loadSiteConfig: ctx.loadSiteConfig,
loadNotificationConfig: ctx.loadNotificationConfig,
session: ctx.session,
saveTotpConfig: ctx.saveTotpConfig
};
router.use(require('./settings')(baseDeps));
router.use(require('./assets')({ ...baseDeps, readConfig: ctx.readConfig, saveConfig: ctx.saveConfig }));
router.use(require('./backup')(backupDeps));
return router;
};