mirror of
https://github.com/arnaucube/commonroutesServer.git
synced 2026-02-28 05:26:42 +01:00
joins system done inside the travel model (with join and unjoin implemented
This commit is contained in:
@@ -15,6 +15,7 @@ frontend app code: https://github.com/idoctnef/collectivecarApp
|
||||
**Backend and Frontend:**
|
||||
```
|
||||
-signup user --> done
|
||||
-signup unique username --> done
|
||||
-loggin user --> done
|
||||
-update user profile --> done
|
||||
-create new travel --> done
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
module.exports = {
|
||||
|
||||
/*'secret': process.env.SECRET,
|
||||
/*'secret': process.env.SECRET,// production version
|
||||
'database': process.env.MONGO_DSN,*/
|
||||
'secret': process.env.SECRET,
|
||||
'database': process.env.MONGO_DSN,
|
||||
'secret': 'secretfortoken',// local version
|
||||
'database': 'mongodb://localhost/comunalcar',
|
||||
"port" : process.env.PORT || 3000
|
||||
|
||||
};
|
||||
|
||||
@@ -107,22 +107,25 @@ exports.deleteTravel = function(req, res) {
|
||||
|
||||
/* join */
|
||||
exports.addJoin = function(req, res) {
|
||||
var join = new joinModel({
|
||||
travelId: req.params.travelId,
|
||||
joinedUserId: req.body.joinedUserId,
|
||||
joinedUsername: req.body.joinedUsername,
|
||||
acceptedUserId: req.body.acceptedUserId,
|
||||
joinedAvatar: req.body.joinedAvatar
|
||||
});
|
||||
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);
|
||||
|
||||
join.save(function(err, join) {
|
||||
if(err) return res.send(500, err.message);
|
||||
res.status(200).jsonp(join);
|
||||
travel.save(function(err, travel) {
|
||||
if(err) return res.send(500, err.message);
|
||||
res.status(200).jsonp(travel);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
exports.doUnjoin = function(req, res) {
|
||||
joinModel.find({
|
||||
/*joinModel.find({
|
||||
travelId: req.params.travelId
|
||||
}, function(err, joins) {
|
||||
for(var i=0; i<joins.length; i++)
|
||||
@@ -137,6 +140,20 @@ exports.doUnjoin = function(req, res) {
|
||||
}
|
||||
}
|
||||
|
||||
});*/
|
||||
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)
|
||||
{
|
||||
travel.joins.splice(i, 1);
|
||||
}
|
||||
}
|
||||
|
||||
travel.save(function(err, travel) {
|
||||
if(err) return res.send(500, err.message);
|
||||
res.status(200).jsonp(travel);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@@ -17,7 +17,19 @@ var travelSchema = new Schema({
|
||||
phone: { type: Number },
|
||||
telegram: { type: String },
|
||||
collectivized: { type: Boolean },
|
||||
modality: { type: String } //if is an offering travel or asking for travel
|
||||
modality: { type: String }, //if is an offering travel or asking for travel
|
||||
joins: [{
|
||||
joinedUserId: { type: String },
|
||||
joinedUsername: { type: String },
|
||||
acceptedUserId: { type: String },
|
||||
joinedAvatar: { type: String }
|
||||
}],
|
||||
comments: [{
|
||||
commentUserId: { type: String },
|
||||
commentUsername: { type: String },
|
||||
comment: { type: String },
|
||||
commentAvatar: { type: String }
|
||||
}]
|
||||
})
|
||||
module.exports = mongoose.model('travelModel', travelSchema);
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
var mongoose = require('mongoose'),
|
||||
Schema = mongoose.Schema;
|
||||
|
||||
var mongooseUniqueValidator = require('mongoose-unique-validator');
|
||||
|
||||
|
||||
var userSchema = new Schema({
|
||||
username: { type: String },
|
||||
username: { type: String, unique: true },
|
||||
password: { type: String },
|
||||
description: { type: String },
|
||||
avatar: { type: String },
|
||||
@@ -16,4 +18,6 @@ var userSchema = new Schema({
|
||||
comment: { type: String }
|
||||
}]
|
||||
})
|
||||
|
||||
userSchema.plugin(mongooseUniqueValidator);
|
||||
module.exports = mongoose.model('userModel', userSchema);
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
"method-override": "^2.1.2",
|
||||
"mongoose": "latest",
|
||||
"morgan": "latest",
|
||||
"md5": "latest"
|
||||
"md5": "latest",
|
||||
"mongoose-unique-validator": "^1.0.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -122,9 +122,14 @@ apiRoutes.route('/travels/:id')
|
||||
.put(travelCtrl.updateTravel)
|
||||
.delete(travelCtrl.deleteTravel);
|
||||
|
||||
apiRoutes.route('/travels/join/:travelId')
|
||||
/*apiRoutes.route('/travels/join/:travelId')
|
||||
.post(travelCtrl.addJoin);
|
||||
apiRoutes.route('/travels/unjoin/:travelId')
|
||||
.post(travelCtrl.doUnjoin);*/
|
||||
|
||||
apiRoutes.route('/travels/:travelId/join')
|
||||
.post(travelCtrl.addJoin);
|
||||
apiRoutes.route('/travels/:travelId/unjoin')
|
||||
.post(travelCtrl.doUnjoin);
|
||||
|
||||
apiRoutes.route('/travels/comment/:travelId')
|
||||
|
||||
Reference in New Issue
Block a user