56 lines
1.8 KiB
JavaScript
56 lines
1.8 KiB
JavaScript
const express = require('express');
|
|
const initHelpers = require('./helpers');
|
|
const initDeploy = require('./deploy');
|
|
const initRemoval = require('./removal');
|
|
const initTemplates = require('./templates');
|
|
const initRestore = require('./restore');
|
|
const initCompose = require('./compose');
|
|
|
|
/**
|
|
* Apps routes aggregator
|
|
* Assembles all apps sub-routes with their dependencies
|
|
* @param {Object} ctx - Application context (for backward compatibility)
|
|
* @returns {express.Router}
|
|
*/
|
|
module.exports = function(ctx) {
|
|
const router = express.Router();
|
|
|
|
// Extract dependencies from context
|
|
const deps = {
|
|
docker: ctx.docker,
|
|
caddy: ctx.caddy,
|
|
credentialManager: ctx.credentialManager,
|
|
servicesStateManager: ctx.servicesStateManager,
|
|
portLockManager: ctx.portLockManager,
|
|
asyncHandler: ctx.asyncHandler,
|
|
errorResponse: ctx.errorResponse,
|
|
log: ctx.log,
|
|
// Additional context properties needed by routes
|
|
APP_TEMPLATES: ctx.APP_TEMPLATES,
|
|
TEMPLATE_CATEGORIES: ctx.TEMPLATE_CATEGORIES,
|
|
DIFFICULTY_LEVELS: ctx.DIFFICULTY_LEVELS,
|
|
siteConfig: ctx.siteConfig,
|
|
buildDomain: ctx.buildDomain,
|
|
buildServiceUrl: ctx.buildServiceUrl,
|
|
addServiceToConfig: ctx.addServiceToConfig,
|
|
dns: ctx.dns,
|
|
notification: ctx.notification,
|
|
safeErrorMessage: ctx.safeErrorMessage,
|
|
SERVICES_FILE: ctx.SERVICES_FILE,
|
|
ctx: ctx
|
|
};
|
|
|
|
// Initialize helpers with dependencies (ctx is the Koa context)
|
|
const helpers = initHelpers({ ...deps, ctx });
|
|
|
|
// 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));
|
|
router.use(initCompose(subCtx));
|
|
|
|
return router;
|
|
};
|