Files
habitica/website/server/middlewares/maintenanceMode.js
2019-10-10 20:11:50 +02:00

30 lines
962 B
JavaScript

import nconf from 'nconf';
import { getUserLanguage } from './language';
const MAINTENANCE_MODE = nconf.get('MAINTENANCE_MODE');
export default function maintenanceMode (req, res, next) {
if (MAINTENANCE_MODE !== 'true') return next();
return getUserLanguage(req, res, err => {
if (err) return next(err);
const pageVariables = {
maintenanceStart: nconf.get('MAINTENANCE_START'),
maintenanceEnd: nconf.get('MAINTENANCE_END'),
translation: res.t,
};
if (req.headers && req.headers.accept && req.headers.accept.indexOf('text/html') !== -1) {
if (req.path === '/views/static/maintenance-info') {
return res.status(503).render('../../views/static/maintenance-info', pageVariables);
}
return res.status(503).render('../../views/static/maintenance', pageVariables);
}
return res.status(503).send({
error: 'Maintenance',
message: 'Server offline for maintenance.',
});
});
}