mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 06:07:21 +01:00
29 lines
875 B
JavaScript
29 lines
875 B
JavaScript
module.exports = function responseHandler (req, res, next) {
|
|
// Only used for successful responses
|
|
res.respond = function respond (status = 200, data = {}, message) {
|
|
let user = res.locals && res.locals.user;
|
|
|
|
let response = {
|
|
success: status < 400,
|
|
data,
|
|
};
|
|
|
|
if (message) response.message = message;
|
|
|
|
// When userV=Number (user version) query parameter is passed and a user is logged in,
|
|
// sends back the current user._v in the response so that the client
|
|
// can verify if it's the most up to date data.
|
|
// Considered part of the private API for now and not officially supported
|
|
if (user) {
|
|
response.notifications = user.notifications.map(notification => notification.toJSON());
|
|
if (req.query.userV) {
|
|
response.userV = user._v;
|
|
}
|
|
}
|
|
|
|
res.status(status).json(response);
|
|
};
|
|
|
|
next();
|
|
};
|