refactor: changed way middleware was exported

This commit is contained in:
Julian Lam
2020-08-21 15:29:40 -04:00
parent f00595b32d
commit cf2f1e956a
3 changed files with 203 additions and 199 deletions

View File

@@ -18,13 +18,15 @@ var controllers = {
helpers: require('../controllers/helpers'), helpers: require('../controllers/helpers'),
}; };
module.exports.buildHeader = helpers.try(async function (req, res, next) { const middleware = module.exports;
middleware.buildHeader = helpers.try(async function (req, res, next) {
res.locals.renderAdminHeader = true; res.locals.renderAdminHeader = true;
res.locals.config = await controllers.api.loadConfig(req); res.locals.config = await controllers.api.loadConfig(req);
next(); next();
}); });
module.exports.renderHeader = async (req, res, data) => { middleware.renderHeader = async (req, res, data) => {
var custom_header = { var custom_header = {
plugins: [], plugins: [],
authentication: [], authentication: [],
@@ -96,11 +98,11 @@ async function getLatestVersion() {
return null; return null;
} }
module.exports.renderFooter = async function (req, res, data) { middleware.renderFooter = async function (req, res, data) {
return await req.app.renderAsync('admin/footer', data); return await req.app.renderAsync('admin/footer', data);
}; };
module.exports.checkPrivileges = async (req, res, next) => { middleware.checkPrivileges = async (req, res, next) => {
// Kick out guests, obviously // Kick out guests, obviously
if (!req.uid) { if (!req.uid) {
return controllers.helpers.notAllowed(req, res); return controllers.helpers.notAllowed(req, res);

View File

@@ -24,8 +24,9 @@ var controllers = {
helpers: require('../controllers/helpers'), helpers: require('../controllers/helpers'),
}; };
module.exports = function (middleware) { const middleware = module.exports;
middleware.buildHeader = helpers.try(async function buildHeader(req, res, next) {
middleware.buildHeader = helpers.try(async function buildHeader(req, res, next) {
res.locals.renderHeader = true; res.locals.renderHeader = true;
res.locals.isAPI = false; res.locals.isAPI = false;
const [config] = await Promise.all([ const [config] = await Promise.all([
@@ -34,11 +35,11 @@ module.exports = function (middleware) {
]); ]);
res.locals.config = config; res.locals.config = config;
next(); next();
}); });
middleware.buildHeaderAsync = util.promisify(middleware.buildHeader); middleware.buildHeaderAsync = util.promisify(middleware.buildHeader);
async function generateHeader(req, res, data) { async function generateHeader(req, res, data) {
var registrationType = meta.config.registrationType || 'normal'; var registrationType = meta.config.registrationType || 'normal';
res.locals.config = res.locals.config || {}; res.locals.config = res.locals.config || {};
var templateValues = { var templateValues = {
@@ -175,13 +176,13 @@ module.exports = function (middleware) {
}); });
return hookReturn.templateValues; return hookReturn.templateValues;
} }
middleware.renderHeader = async function renderHeader(req, res, data) { middleware.renderHeader = async function renderHeader(req, res, data) {
return await req.app.renderAsync('header', await generateHeader(req, res, data)); return await req.app.renderAsync('header', await generateHeader(req, res, data));
}; };
middleware.renderFooter = async function renderFooter(req, res, templateValues) { middleware.renderFooter = async function renderFooter(req, res, templateValues) {
const data = await plugins.fireHook('filter:middleware.renderFooter', { const data = await plugins.fireHook('filter:middleware.renderFooter', {
req: req, req: req,
res: res, res: res,
@@ -215,9 +216,9 @@ module.exports = function (middleware) {
data.templateValues.isSpider = req.uid === -1; data.templateValues.isSpider = req.uid === -1;
return await req.app.renderAsync('footer', data.templateValues); return await req.app.renderAsync('footer', data.templateValues);
}; };
function modifyTitle(obj) { function modifyTitle(obj) {
var title = controllers.helpers.buildTitle(meta.config.homePageTitle || '[[pages:home]]'); var title = controllers.helpers.buildTitle(meta.config.homePageTitle || '[[pages:home]]');
obj.browserTitle = title; obj.browserTitle = title;
@@ -230,5 +231,4 @@ module.exports = function (middleware) {
} }
return title; return title;
} }
};

View File

@@ -51,8 +51,10 @@ middleware.applyCSRF = function (req, res, next) {
middleware.ensureLoggedIn = ensureLoggedIn.ensureLoggedIn(nconf.get('relative_path') + '/login'); middleware.ensureLoggedIn = ensureLoggedIn.ensureLoggedIn(nconf.get('relative_path') + '/login');
middleware.admin = require('./admin'); Object.assign(middleware, {
require('./header')(middleware); admin: require('./admin'),
...require('./header'),
});
require('./render')(middleware); require('./render')(middleware);
require('./maintenance')(middleware); require('./maintenance')(middleware);
require('./user')(middleware); require('./user')(middleware);