Browse Source

notification system fixed

master
arnaucode 6 years ago
parent
commit
8ff1e6151c
2 changed files with 44 additions and 3 deletions
  1. +42
    -3
      controllers/userController.js
  2. +2
    -0
      server.js

+ 42
- 3
controllers/userController.js

@ -190,6 +190,24 @@ exports.getUserLikes = function(req, res) {
}
});
};
exports.getNumNotificationsByToken = function(req, res) {
userModel.findOne({
'token': req.headers['x-access-token']
})
.lean()
.exec(function(err, user) {
if (err) return res.send(500, err.message);
if (!user) {
res.json({
success: false,
message: 'User not found.'
});
} else if (user) {
res.status(200).jsonp(user.notifications);
}
});
};
exports.getNotifications = function(req, res) {
userModel.findOne({
'token': req.headers['x-access-token']
@ -205,9 +223,9 @@ exports.getNotifications = function(req, res) {
});
} else if (user) {
//res.status(200).jsonp(user.notifications);
notificationModel.find({
'user': user._id
'user': user._id,
'state': 'pendent'
})
.lean()
.exec(function(err, notifications) {
@ -218,10 +236,31 @@ exports.getNotifications = function(req, res) {
message: 'No pendent notifications.'
});
} else if (notifications) {
//here, maybe in the future is better delete the viewed notifications
notificationModel.update(
{state: "pendent"},
{state: "viewed"},
{multi: true},
function(err){
if(err){
console.log(err);
}
}
);
res.status(200).jsonp(notifications);
}
});
//now, clean notifications count from user
userModel.update(
{'token': req.headers['x-access-token']},
{notifications: []},
function(err){
if(err){
console.log(err);
}
}
);
}
});
};

+ 2
- 0
server.js

@ -113,6 +113,8 @@ apiRoutes.use(function(req, res, next) {
apiRoutes.route('/search/:searchstring')
.get(searchCtrl.searchByString);
apiRoutes.route('/numnotifications')
.get(userCtrl.getNumNotificationsByToken);
apiRoutes.route('/notifications')
.get(userCtrl.getNotifications);
apiRoutes.route('/users/token')

Loading…
Cancel
Save