arnaucube
arnaucube/commonroutesServerPublic Self-hosted repository
user fav system implemented
idoctnef idoctnef@openmailbox.org
Thu, 06 Oct 2016 22:40:54 +0200
commit

29091426a48964471c5a97e813c7f7ca859ce03d

parent

408812b265b18a76a3abdbcb958875b0d6c78652

4 files changed, 59 insertions(+), 5 deletions(-)

jump to
M config.js → config.js

@@ -1,8 +1,8 @@

module.exports = { - /*'secret': process.env.SECRET,// production version - 'database': process.env.MONGO_DSN,*/ - 'secret': 'secretfortoken',// local version - 'database': 'mongodb://localhost/comunalcar', + 'secret': process.env.SECRET,// production version + 'database': process.env.MONGO_DSN, + /*'secret': 'secretfortoken',// local version + 'database': 'mongodb://localhost/comunalcar',*/ "port" : process.env.PORT || 3000 };
M controllers/userController.js → controllers/userController.js

@@ -86,6 +86,48 @@ res.status(200).jsonp(user);

}); }; +/* fav */ +exports.addFav = function(req, res) { + userModel.findById(req.params.userId, function(err, user){ + var fav = { + userId: req.body.userId, + username: req.body.username, + avatar: req.body.avatar + }; + user.favs.push(fav); + + user.save(function(err, user) { + if(err) return res.send(500, err.message); + //res.status(200).jsonp(travel); + userModel.find(function(err, users) { + if(err) res.send(500, err.message); + res.status(200).jsonp(users); + }); + }); + }); +}; +exports.doUnfav = function(req, res) { + + userModel.findById(req.params.userId, function(err, user){ + for(var i=0; i<user.favs.length; i++) + { + if(user.favs[i].username==req.body.username) + { + user.favs.splice(i, 1); + } + } + + user.save(function(err, travel) { + if(err) return res.send(500, err.message); + //res.status(200).jsonp(travel); + userModel.find(function(err, users) { + if(err) res.send(500, err.message); + res.status(200).jsonp(users); + }); + }); + }); +}; + //PUT - Update a user already exists exports.updateUser = function(req, res) { userModel.findById(req.params.id, function(err, user) {

@@ -145,12 +187,14 @@ //expiresIn: '60m'

}); console.log(user); // return the information including token as JSON + user.password=""; res.json({ success: true, message: 'Enjoy your token!', token: token, avatar: user.avatar, - userid: user._id + userid: user._id, + userdata: user }); }
M models/userModel.js → models/userModel.js

@@ -16,6 +16,11 @@ valorations: [{

username: { type: String }, value: { type: Number }, comment: { type: String } + }], + favs: [{ + username: { type: String }, + userId: { type: String }, + avatar: { type: String } }] })
M server.js → server.js

@@ -132,6 +132,11 @@ .post(travelCtrl.addJoin);

apiRoutes.route('/travels/:travelId/unjoin') .post(travelCtrl.doUnjoin); +apiRoutes.route('/users/:userId/fav') + .post(userCtrl.addFav); +apiRoutes.route('/users/:userId/unfav') + .post(userCtrl.doUnfav); + apiRoutes.route('/travels/:travelId/comment') .post(travelCtrl.addComment);