mirror of
https://github.com/WeeJeWel/wg-easy.git
synced 2024-07-05 05:18:22 +08:00
47 lines
978 B
JavaScript
47 lines
978 B
JavaScript
|
'use strict';
|
||
|
|
||
|
module.exports = class Util {
|
||
|
|
||
|
static requireSession(req, res, next) {
|
||
|
if (req.session && req.session.authenticated) {
|
||
|
return next();
|
||
|
}
|
||
|
|
||
|
return res.status(401).json({
|
||
|
error: 'Not Logged In',
|
||
|
});
|
||
|
}
|
||
|
|
||
|
static promisify(fn) {
|
||
|
return function(req, res) {
|
||
|
Promise.resolve().then(async () => fn(req, res))
|
||
|
.then(result => {
|
||
|
if (res.headersSent) return;
|
||
|
|
||
|
if (typeof result === 'undefined') {
|
||
|
return res
|
||
|
.status(204)
|
||
|
.end();
|
||
|
}
|
||
|
|
||
|
return res
|
||
|
.status(200)
|
||
|
.json(result);
|
||
|
})
|
||
|
.catch(error => {
|
||
|
if (typeof error === 'string') {
|
||
|
error = new Error(error);
|
||
|
}
|
||
|
|
||
|
return res
|
||
|
.status(error.statusCode || 500)
|
||
|
.json({
|
||
|
error: error.message || error.toString(),
|
||
|
stack: error.stack,
|
||
|
});
|
||
|
});
|
||
|
};
|
||
|
}
|
||
|
|
||
|
};
|