Files
habitica/website/server/middlewares/api-v3/maintenanceMode.js
Sabe Jones 237bc062ea [API v3] Maintenance Mode (#7367)
* WIP(maintenance): maintenance

* WIP(maintenance): working locale features

* fix(maintenance): don't translate info page target

* WIP(maintenance): start adding info page

* fix(maintenance): linting

* feat: Add container to maintenance info page

* fix(maintenance): add config.json edits
Also DRY variables for main vs info pages

* fix(maintenance): linting

* refactor(maintenance): further slim down variables

* refactor: Remove unnecessary variables

* fix: Correct string interpolation in maintenace view

* feat: Dynamically add time to maintenance pages

* maintenance mode: do not connect to mongodb

* fix(maintenance): clean up timezones etc.

* fix(maintenance): remove unneeded sprite
2016-05-21 12:24:13 +02:00

32 lines
1002 B
JavaScript

import { getUserLanguage } from './language';
import nconf from 'nconf';
const MAINTENANCE_MODE = nconf.get('MAINTENANCE_MODE');
module.exports = function maintenanceMode (req, res, next) {
if (MAINTENANCE_MODE !== 'true') return next();
getUserLanguage(req, res, (err) => {
if (err) return next(err);
let 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);
} else {
return res.status(503).render('../../../views/static/maintenance', pageVariables);
}
} else {
return res.status(503).send({
error: 'Maintenance',
message: 'Server offline for maintenance.',
});
}
});
};