fix(routes): Pass full deps to config/backup and create ctx shim
This commit is contained in:
@@ -5,20 +5,29 @@ const { CADDY } = require('../../constants');
|
||||
const { exists } = require('../../fs-helpers');
|
||||
const { ValidationError, AuthenticationError } = require('../../errors');
|
||||
|
||||
module.exports = function({ configStateManager, servicesStateManager, asyncHandler, log }) {
|
||||
const express = require('express');
|
||||
/**
|
||||
* Config backup routes factory
|
||||
* @param {Object} deps - Explicit dependencies
|
||||
* @param {Object} deps.configStateManager - Config state manager
|
||||
* @param {Object} deps.servicesStateManager - Services state manager
|
||||
* @param {Function} deps.asyncHandler - Async route handler wrapper
|
||||
* @param {Object} deps.log - Logger instance
|
||||
* @returns {express.Router}
|
||||
*/
|
||||
module.exports = function(deps) {
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
const THEMES_DIR = process.env.THEMES_DIR || path.join(path.dirname(ctx.SERVICES_FILE), 'themes');
|
||||
// Extract dependencies
|
||||
const {
|
||||
configStateManager, servicesStateManager, asyncHandler, log,
|
||||
SERVICES_FILE, CONFIG_FILE, TOTP_CONFIG_FILE, TAILSCALE_CONFIG_FILE, NOTIFICATIONS_FILE,
|
||||
caddy, dns, fetchT, totpConfig, credentialManager, loadSiteConfig, loadNotificationConfig, session, saveTotpConfig
|
||||
} = deps;
|
||||
|
||||
// Create ctx-like object for compatibility with existing code
|
||||
const ctx = {
|
||||
SERVICES_FILE, CONFIG_FILE, TOTP_CONFIG_FILE, TAILSCALE_CONFIG_FILE, NOTIFICATIONS_FILE,
|
||||
caddy, dns, fetchT, totpConfig, credentialManager, loadSiteConfig, loadNotificationConfig
|
||||
};
|
||||
|
||||
const THEMES_DIR = process.env.THEMES_DIR || path.join(path.dirname(SERVICES_FILE), 'themes');
|
||||
|
||||
function readAllThemes() {
|
||||
const themes = {};
|
||||
|
||||
@@ -8,15 +8,35 @@ const express = require('express');
|
||||
module.exports = function(ctx) {
|
||||
const router = express.Router();
|
||||
|
||||
const deps = {
|
||||
// Common deps for all config routes
|
||||
const baseDeps = {
|
||||
configStateManager: ctx.configStateManager,
|
||||
servicesStateManager: ctx.servicesStateManager,
|
||||
asyncHandler: ctx.asyncHandler,
|
||||
log: ctx.log
|
||||
};
|
||||
|
||||
router.use(require('./settings')(deps));
|
||||
router.use(require('./assets')(deps));
|
||||
router.use(require('./backup')(deps));
|
||||
// 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, CONFIG_FILE: ctx.CONFIG_FILE, readConfig: ctx.readConfig, saveConfig: ctx.saveConfig, errorResponse: ctx.errorResponse }));
|
||||
router.use(require('./backup')(backupDeps));
|
||||
return router;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user