fix(routes): restore ctx access in 15 route files broken by Phase 2.1 refactor

The modular refactor changed function signatures to destructured deps but
left internal ctx.* references intact, causing "ctx is not defined" errors
on /api/config, /api/logo, and many other endpoints. Also implements
loadTotpConfig and saveTotpConfig which were left as stubs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-30 03:01:29 -07:00
parent 01bf01d043
commit f865790fe1
16 changed files with 62 additions and 37 deletions

View File

@@ -17,7 +17,8 @@ const platformPaths = require('../../platform-paths');
* @param {Object} deps.log - Logger instance
* @returns {Object} Helper functions
*/
module.exports = function({ docker, caddy, credentialManager, servicesStateManager, fetchT, log }) {
module.exports = function(ctx) {
const { docker, caddy, credentialManager, servicesStateManager, fetchT, log } = ctx;
async function checkPortConflicts(ports, excludeContainerName = null) {
const conflicts = [];

View File

@@ -36,13 +36,14 @@ module.exports = function(ctx) {
};
// Initialize helpers with dependencies
const helpers = initHelpers(deps);
const helpers = initHelpers(ctx);
// Mount sub-routes with explicit dependencies
router.use(initDeploy({ ...deps, helpers }));
router.use(initRemoval({ ...deps, helpers }));
router.use(initTemplates({ ...deps, helpers }));
router.use(initRestore({ ...deps, helpers }));
// Mount sub-routes — pass full ctx so sub-routes can reference ctx.* properties
const subCtx = Object.assign({}, ctx, { helpers });
router.use(initDeploy(subCtx));
router.use(initRemoval(subCtx));
router.use(initTemplates(subCtx));
router.use(initRestore(subCtx));
return router;
};

View File

@@ -1,10 +1,9 @@
const express = require('express');
const { exists } = require('../../fs-helpers');
module.exports = function({ docker, caddy, servicesStateManager, asyncHandler, log, helpers }) {
module.exports = function(ctx) {
const { docker, caddy, servicesStateManager, asyncHandler, errorResponse, log, helpers } = ctx;
const router = express.Router();
// Remove deployed app
/**
* Apps removal routes factory
* @param {Object} deps - Explicit dependencies

View File

@@ -12,7 +12,8 @@ const { DOCKER } = require('../../constants');
* @param {Object} deps.helpers - Apps helpers module
* @returns {express.Router}
*/
module.exports = function({ docker, caddy, servicesStateManager, asyncHandler, log, helpers }) {
module.exports = function(ctx) {
const { docker, caddy, servicesStateManager, asyncHandler, log, helpers } = ctx;
const router = express.Router();
/**

View File

@@ -10,7 +10,8 @@ const { exists } = require('../../fs-helpers');
*/
const { REGEX } = require('../../constants');
module.exports = function({ servicesStateManager, asyncHandler, helpers }) {
module.exports = function(ctx) {
const { servicesStateManager, asyncHandler, helpers, docker, caddy, log, errorResponse } = ctx;
const router = express.Router();
// Get available app templates