|
@ -229,6 +229,73 @@ exports.unJoin = function(req, res) { |
|
|
}); |
|
|
}); |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
exports.declineJoin = function(req, res) { |
|
|
|
|
|
userModel.findOne({'token': req.headers['x-access-token']}) |
|
|
|
|
|
.exec(function(err, userOwner){ |
|
|
|
|
|
if (err) return res.send(500, err.message); |
|
|
|
|
|
if (!userOwner) { |
|
|
|
|
|
res.json({success: false, message: 'User not found.'}); |
|
|
|
|
|
} else if (userOwner) { |
|
|
|
|
|
travelModel.findOne({ |
|
|
|
|
|
_id: req.params.travelid, |
|
|
|
|
|
user: userOwner._id, |
|
|
|
|
|
joinPetitions: req.body.userid |
|
|
|
|
|
}) |
|
|
|
|
|
.exec(function(err, travel){ |
|
|
|
|
|
if (err) return res.send(500, err.message); |
|
|
|
|
|
if (!travel) { |
|
|
|
|
|
res.json({success: false, message: 'travel not found. You can not join a travel if you have created it, or if you have already joined'}); |
|
|
|
|
|
} else if (travel) { |
|
|
|
|
|
var indexPetition=-1; |
|
|
|
|
|
for(var i=0; i<travel.joinPetitions.length; i++) |
|
|
|
|
|
{ |
|
|
|
|
|
if(travel.joinPetitions[i].equals(req.body.userid)) |
|
|
|
|
|
{ |
|
|
|
|
|
indexPetition=JSON.parse(JSON.stringify(i)); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if(indexPetition>-1) |
|
|
|
|
|
{ |
|
|
|
|
|
travel.joinPetitions.splice(indexPetition, 1); |
|
|
|
|
|
} |
|
|
|
|
|
travel.save(function(err, travel) { |
|
|
|
|
|
if(err) return res.send(500, err.message); |
|
|
|
|
|
|
|
|
|
|
|
//start saving notification, get user owner of travel
|
|
|
|
|
|
userModel.findOne({_id: req.body.userid}) |
|
|
|
|
|
.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) { |
|
|
|
|
|
//notification
|
|
|
|
|
|
var notification = new notificationModel({ |
|
|
|
|
|
concept: "travel", |
|
|
|
|
|
message: "user "+userOwner.username+" declines your petition for "+travel.title, |
|
|
|
|
|
date: new Date(), |
|
|
|
|
|
icon: 'travel.png', |
|
|
|
|
|
link: "travels/" + travel._id |
|
|
|
|
|
}); |
|
|
|
|
|
notification.save(function(err, notification) { |
|
|
|
|
|
if (err) return res.send(500, err.message); |
|
|
|
|
|
user.notifications.push(notification._id); |
|
|
|
|
|
user.save(function(err, user) { |
|
|
|
|
|
if (err) return res.send(500, err.message); |
|
|
|
|
|
|
|
|
|
|
|
console.log("notification saved"); |
|
|
|
|
|
exports.getTravelById(req, res); |
|
|
|
|
|
}); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
});//end saving notification
|
|
|
|
|
|
});//end of travel save
|
|
|
|
|
|
}//end of else if travel
|
|
|
|
|
|
}); |
|
|
|
|
|
}//end of else if user
|
|
|
|
|
|
}); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
exports.acceptJoin = function(req, res) { |
|
|
exports.acceptJoin = function(req, res) { |
|
|
userModel.findOne({'token': req.headers['x-access-token']}) |
|
|
userModel.findOne({'token': req.headers['x-access-token']}) |
|
|
.exec(function(err, userOwner){ |
|
|
.exec(function(err, userOwner){ |
|
@ -297,6 +364,65 @@ exports.acceptJoin = function(req, res) { |
|
|
}); |
|
|
}); |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
exports.leave = function(req, res) { |
|
|
|
|
|
userModel.findOne({'token': req.headers['x-access-token']}) |
|
|
|
|
|
.exec(function(err, userLeaving){ |
|
|
|
|
|
if (!userLeaving) { |
|
|
|
|
|
res.json({success: false, message: 'userLeaving not found.'}); |
|
|
|
|
|
} else if (userLeaving) { |
|
|
|
|
|
travelModel.findOne({ |
|
|
|
|
|
_id: req.params.travelid, |
|
|
|
|
|
joins: userLeaving._id |
|
|
|
|
|
}) |
|
|
|
|
|
.exec(function(err, travel){ |
|
|
|
|
|
if (err) return res.send(500, err.message); |
|
|
|
|
|
if (!travel) { |
|
|
|
|
|
res.json({success: false, message: 'can not unjoin this travel'}); |
|
|
|
|
|
} else if (travel) { |
|
|
|
|
|
for(var i=0; i<travel.joins.length; i++) |
|
|
|
|
|
{ |
|
|
|
|
|
if(travel.joins[i].equals(userLeaving._id)) |
|
|
|
|
|
{ |
|
|
|
|
|
travel.joins.splice(i, 1); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
travel.save(function(err, travel) { |
|
|
|
|
|
if(err) return res.send(500, err.message); |
|
|
|
|
|
//start saving notification, get user owner of travel
|
|
|
|
|
|
userModel.findOne({_id: travel.user}) |
|
|
|
|
|
.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) { |
|
|
|
|
|
//notification
|
|
|
|
|
|
var notification = new notificationModel({ |
|
|
|
|
|
concept: "leave", |
|
|
|
|
|
message: "user "+userLeaving.username+" leaves your travel "+travel.title, |
|
|
|
|
|
date: new Date(), |
|
|
|
|
|
icon: 'leave.png', |
|
|
|
|
|
link: "travels/" + travel._id |
|
|
|
|
|
}); |
|
|
|
|
|
notification.save(function(err, notification) { |
|
|
|
|
|
if (err) return res.send(500, err.message); |
|
|
|
|
|
user.notifications.push(notification._id); |
|
|
|
|
|
user.save(function(err, user) { |
|
|
|
|
|
if (err) return res.send(500, err.message); |
|
|
|
|
|
|
|
|
|
|
|
console.log("notification saved"); |
|
|
|
|
|
exports.getTravelById(req, res); |
|
|
|
|
|
}); |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
});//end saving notification
|
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
exports.getTravelsByUserId = function(req, res) { |
|
|
exports.getTravelsByUserId = function(req, res) { |
|
|
travelModel.find({ |
|
|
travelModel.find({ |
|
|
user: req.params.userid |
|
|
user: req.params.userid |
|
|