git » repo » main » tree

[main] / services / pure / web / middlewares.js

var expressEndFunc;

module.exports = {
    endFunctionSaver: function (req, res, next) {
        if (!expressEndFunc) {
            expressEndFunc = res.end;
        }
        next();
    },

    sessionEndFunctionHandler: function (req, res, next) {
        var sessionEndFunc = res.end;
        res.end = function end(chunk, encoding) {
            try {
                sessionEndFunc.call(res, chunk, encoding);
            } catch(e) {
                expressEndFunc.call(res, chunk, encoding);
            }
        };

        next();
    },

    adminHandler: function (req, res, next) {
        if (req.headers && req.headers['verified'] == 'SUCCESS' && req.session) {
            req.session.isAdmin = true;
        } else {
            if (req.session && req.session.isAdmin) {
                delete req.session.isAdmin;
            }
        }

        next();
    },

    cookieSettingsHandler: function (req, res, next) {
        if (req.cookies && req.cookies['settings']) {
            var settingsCookieValue = req.cookies['settings'];

            var settingKey = settingsCookieValue.slice(0, settingsCookieValue.indexOf(':'));
            var settingValue = settingsCookieValue.slice(settingsCookieValue.indexOf(':') + 1)[0];

            req.session[settingKey] = settingValue;
        }

        next();
    }
}