arnaucube
arnaucube/commonroutesServerPublic Self-hosted repository
all posts runing by token
arnaucode idoctnef@openmailbox.org
Sun, 16 Oct 2016 23:25:39 +0200
commit

840d7de000b3d2ce5dd85e1769986c052ecf4e4a

parent

cfa84bfa6d168b8460d8bd15068148dd07a59dd6

3 files changed, 167 insertions(+), 115 deletions(-)

jump to
M controllers/travelController.js → controllers/travelController.js

@@ -52,55 +52,59 @@ };

exports.addTravel = function(req, res) { console.log('POST new travel, title: ' + req.body.title); - var travel = new travelModel({ - title: req.body.title, - description: req.body.description, - owner: req.body.owner, - from: req.body.from, - to: req.body.to, - date: req.body.date, - periodic: req.body.periodic, - generateddate: req.body.generateddate, - seats: req.body.seats, - package: req.body.package, - icon: req.body.icon, - phone: req.body.phone, - telegram: req.body.telegram, - collectivized: req.body.collectivized, - modality: req.body.modality - }); - if(travel.title==undefined) - { - return res.status(500).jsonp("empty inputs"); - }else if(travel.description==undefined) - { - return res.status(500).jsonp("empty inputs"); - }else if(travel.from==undefined) - { - return res.status(500).jsonp("empty inputs"); - }else if(travel.to==undefined) - { - return res.status(500).jsonp("empty inputs"); - }else if(travel.date==undefined) - { - return res.status(500).jsonp("empty inputs"); - }else if(travel.seats==undefined) - { - return res.status(500).jsonp("empty inputs"); - }else if(travel.title==undefined) - { - return res.status(500).jsonp("empty inputs"); - } + userModel.find({ + token: req.headers['x-access-token'] + }, function(err, users){ + var user=users[0]; + + var travel = new travelModel({ + title: req.body.title, + description: req.body.description, + owner: user.username, + from: req.body.from, + to: req.body.to, + date: req.body.date, + periodic: req.body.periodic, + generateddate: req.body.generateddate, + seats: req.body.seats, + package: req.body.package, + icon: req.body.icon, + phone: user.phone, + telegram: user.telegram, + collectivized: req.body.collectivized, + modality: req.body.modality + }); + if(travel.title==undefined) + { + return res.status(500).jsonp("empty inputs"); + }else if(travel.description==undefined) + { + return res.status(500).jsonp("empty inputs"); + }else if(travel.from==undefined) + { + return res.status(500).jsonp("empty inputs"); + }else if(travel.to==undefined) + { + return res.status(500).jsonp("empty inputs"); + }else if(travel.date==undefined) + { + return res.status(500).jsonp("empty inputs"); + }else if(travel.title==undefined) + { + return res.status(500).jsonp("empty inputs"); + } + + travel.save(function(err, travel) { + if(err) return res.send(500, err.message); + //res.status(200).jsonp(travel); + travelModel.find({date: {$gte: new Date()}}, function(err, travels) { + if(err) res.send(500, err.message); - travel.save(function(err, travel) { - if(err) return res.send(500, err.message); - //res.status(200).jsonp(travel); - travelModel.find({date: {$gte: new Date()}}, function(err, travels) { - if(err) res.send(500, err.message); + res.status(200).jsonp(travels); + }); + });//end of travel.save + });//end of usermodel.find - res.status(200).jsonp(travels); - }); - }); };

@@ -124,59 +128,79 @@ };

//DELETE exports.deleteTravel = function(req, res) { - travelModel.findById(req.params.id, function(err, travel) { - travel.remove(function(err) { - if(err) return res.send(500, err.message); + userModel.find({ + token: req.headers['x-access-token'] + }, function(err, users){ + var user=users[0]; + + travelModel.findById(req.params.id, function(err, travel) { + if(travel.owner==user.username) + { + travel.remove(function(err) { + if(err) return res.send(500, err.message); - travelModel.find({date: {$gte: new Date()}}, function(err, travels) { - if(err) res.send(500, err.message); - res.status(200).jsonp(travels); - }); - }) + travelModel.find({date: {$gte: new Date()}}, function(err, travels) { + if(err) res.send(500, err.message); + res.status(200).jsonp(travels); + }); + }); + } + }); }); }; /* join */ exports.addJoin = function(req, res) { - travelModel.findById(req.params.travelId, function(err, travel){ - console.log(travel.title); - var join = { - joinedUserId: req.body.joinedUserId, - joinedUsername: req.body.joinedUsername, - acceptedUserId: req.body.acceptedUserId, - joinedAvatar: req.body.joinedAvatar - }; - travel.joins.push(join); + userModel.find({ + token: req.headers['x-access-token'] + }, function(err, users){ + var user=users[0]; - travel.save(function(err, travel) { - if(err) return res.send(500, err.message); - //res.status(200).jsonp(travel); - travelModel.find({date: {$gte: new Date()}}, function(err, travels) { - if(err) res.send(500, err.message); - res.status(200).jsonp(travels); + travelModel.findById(req.params.travelId, function(err, travel){ + console.log(travel.title); + var join = { + joinedUserId: user._id, + joinedUsername: user.username, + acceptedUserId: req.body.acceptedUserId, + joinedAvatar: user.avatar + }; + travel.joins.push(join); + + travel.save(function(err, travel) { + if(err) return res.send(500, err.message); + //res.status(200).jsonp(travel); + travelModel.find({date: {$gte: new Date()}}, function(err, travels) { + if(err) res.send(500, err.message); + res.status(200).jsonp(travels); + }); }); }); }); }; exports.doUnjoin = function(req, res) { + userModel.find({ + token: req.headers['x-access-token'] + }, function(err, users){ + var user=users[0]; - travelModel.findById(req.params.travelId, function(err, travel){ - for(var i=0; i<travel.joins.length; i++) - { - if(travel.joins[i].joinedUsername==req.body.joinedUsername) + travelModel.findById(req.params.travelId, function(err, travel){ + for(var i=0; i<travel.joins.length; i++) { - travel.joins.splice(i, 1); + if(travel.joins[i].joinedUsername==user.username) + { + travel.joins.splice(i, 1); + } } - } - travel.save(function(err, travel) { - if(err) return res.send(500, err.message); - //res.status(200).jsonp(travel); - travelModel.find({date: {$gte: new Date()}}, function(err, travels) { - if(err) res.send(500, err.message); - res.status(200).jsonp(travels); + travel.save(function(err, travel) { + if(err) return res.send(500, err.message); + //res.status(200).jsonp(travel); + travelModel.find({date: {$gte: new Date()}}, function(err, travels) { + if(err) res.send(500, err.message); + res.status(200).jsonp(travels); + }); }); }); });

@@ -215,26 +239,31 @@ comment.save(function(err, comment) {

if(err) return res.send(500, err.message); res.status(200).jsonp(comment); });*/ + userModel.find({ + token: req.headers['x-access-token'] + }, function(err, users){ + var user=users[0]; - travelModel.findById(req.params.travelId, function(err, travel){ - console.log(travel.title); - var comment = { - commentUserId: req.body.commentUserId, - commentUsername: req.body.commentUsername, - comment: req.body.comment, - commentAvatar: req.body.commentAvatar - }; - travel.comments.push(comment); + travelModel.findById(req.params.travelId, function(err, travel){ + console.log(travel.title); + var comment = { + commentUserId: user._id, + commentUsername: user.username, + comment: req.body.comment, + commentAvatar: user.avatar + }; + travel.comments.push(comment); - travel.save(function(err, travel) { - if(err) return res.send(500, err.message); - //res.status(200).jsonp(travel); - travelModel.find({date: {$gte: new Date()}}, function(err, travels) { - if(err) res.send(500, err.message); - res.status(200).jsonp(travels); + travel.save(function(err, travel) { + if(err) return res.send(500, err.message); + //res.status(200).jsonp(travel); + travelModel.find({date: {$gte: new Date()}}, function(err, travels) { + if(err) res.send(500, err.message); + res.status(200).jsonp(travels); + }); }); }); - }); + });//end of userModel.find }; exports.getCommentsByTravelId = function(req, res) {
M controllers/userController.js → controllers/userController.js

@@ -21,6 +21,7 @@ //password deletion

for(var i=0; i<users.length; i++) { users[i].password=""; + users[i].token=""; console.log(users[i].password); }

@@ -38,6 +39,7 @@ console.log('GET /users/' + req.params.id);

//password deletion if(user!=null){ user.password=""; + users.token=""; } res.status(200).jsonp(user); });

@@ -56,6 +58,7 @@ } else if (user) {

// return the information including token as JSON //res.jsonp(user); user.password=""; + users.token=""; console.log(user); res.status(200).jsonp(user[0]);

@@ -95,7 +98,7 @@ }else if(user.mail==undefined)

{ return res.status(500).jsonp("empty inputs"); } - + user.save(function(err, user) { if(err) return res.send(500, err.message); res.status(200).jsonp(user);

@@ -104,13 +107,19 @@ };

/* fav */ exports.addFav = function(req, res) { + var tokenuser; + userModel.find({ + token: req.headers['x-access-token'] + }, function(err, users){ + tokenuser=users[0]; + }); userModel.findById(req.params.userId, function(err, user){ // first search if user have already said like var favRepeated=false; for(var i=0; i<user.favs.length; i++) { - if(user.favs[i].username==req.body.username) + if(user.favs[i].username==tokenuser.username) { favRepeated=true; }

@@ -119,9 +128,9 @@ console.log("favRepeated: " + favRepeated);

if(favRepeated==false) { var fav = { - userId: req.body.userId, - username: req.body.username, - avatar: req.body.avatar + userId: tokenuser._id, + username: tokenuser.username, + avatar: tokenuser.avatar }; user.favs.push(fav);

@@ -143,11 +152,17 @@

}); }; exports.doUnfav = function(req, res) { + var tokenuser; + userModel.find({ + token: req.headers['x-access-token'] + }, function(err, users){ + tokenuser=users[0]; + }); 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) + if(user.favs[i].username==tokenuser.username) { user.favs.splice(i, 1); }

@@ -178,6 +193,7 @@

user.save(function(err) { if(err) return res.send(500, err.message); user.password=""; + users.token=""; res.status(200).jsonp(user); }); });

@@ -221,17 +237,23 @@ var token = jwt.sign(user, app.get('superSecret'), {

//expiresInMinutes: 1440 // expires in 24 hours //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, - userdata: user - }); + user.token=token; + user.save(function(err, user) { + if(err) return res.send(500, err.message); + //res.status(200).jsonp(travel); + 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, + userdata: user + }); + }); + } }
M models/userModel.js → models/userModel.js

@@ -7,6 +7,7 @@

var userSchema = new Schema({ username: { type: String, unique: true }, password: { type: String }, + token: { type: String }, description: { type: String }, avatar: { type: String }, mail: { type: String },