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:**
|
**Backend and Frontend:**
|
||||||
```
|
```
|
||||||
-signup user --> done
|
-signup user --> done
|
||||||
|
-signup unique username --> done
|
||||||
-loggin user --> done
|
-loggin user --> done
|
||||||
-update user profile --> done
|
-update user profile --> done
|
||||||
-create new travel --> done
|
-create new travel --> done
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
|
/*'secret': process.env.SECRET,// production version
|
||||||
/*'secret': process.env.SECRET,
|
|
||||||
'database': process.env.MONGO_DSN,*/
|
'database': process.env.MONGO_DSN,*/
|
||||||
'secret': process.env.SECRET,
|
'secret': 'secretfortoken',// local version
|
||||||
'database': process.env.MONGO_DSN,
|
'database': 'mongodb://localhost/comunalcar',
|
||||||
"port" : process.env.PORT || 3000
|
"port" : process.env.PORT || 3000
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -107,22 +107,25 @@ exports.deleteTravel = function(req, res) {
|
|||||||
|
|
||||||
/* join */
|
/* join */
|
||||||
exports.addJoin = function(req, res) {
|
exports.addJoin = function(req, res) {
|
||||||
var join = new joinModel({
|
travelModel.findById(req.params.travelId, function(err, travel){
|
||||||
travelId: req.params.travelId,
|
console.log(travel.title);
|
||||||
|
var join = {
|
||||||
joinedUserId: req.body.joinedUserId,
|
joinedUserId: req.body.joinedUserId,
|
||||||
joinedUsername: req.body.joinedUsername,
|
joinedUsername: req.body.joinedUsername,
|
||||||
acceptedUserId: req.body.acceptedUserId,
|
acceptedUserId: req.body.acceptedUserId,
|
||||||
joinedAvatar: req.body.joinedAvatar
|
joinedAvatar: req.body.joinedAvatar
|
||||||
});
|
};
|
||||||
|
travel.joins.push(join);
|
||||||
|
|
||||||
join.save(function(err, join) {
|
travel.save(function(err, travel) {
|
||||||
if(err) return res.send(500, err.message);
|
if(err) return res.send(500, err.message);
|
||||||
res.status(200).jsonp(join);
|
res.status(200).jsonp(travel);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.doUnjoin = function(req, res) {
|
exports.doUnjoin = function(req, res) {
|
||||||
joinModel.find({
|
/*joinModel.find({
|
||||||
travelId: req.params.travelId
|
travelId: req.params.travelId
|
||||||
}, function(err, joins) {
|
}, function(err, joins) {
|
||||||
for(var i=0; i<joins.length; i++)
|
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 },
|
phone: { type: Number },
|
||||||
telegram: { type: String },
|
telegram: { type: String },
|
||||||
collectivized: { type: Boolean },
|
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);
|
module.exports = mongoose.model('travelModel', travelSchema);
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
var mongoose = require('mongoose'),
|
var mongoose = require('mongoose'),
|
||||||
Schema = mongoose.Schema;
|
Schema = mongoose.Schema;
|
||||||
|
|
||||||
|
var mongooseUniqueValidator = require('mongoose-unique-validator');
|
||||||
|
|
||||||
|
|
||||||
var userSchema = new Schema({
|
var userSchema = new Schema({
|
||||||
username: { type: String },
|
username: { type: String, unique: true },
|
||||||
password: { type: String },
|
password: { type: String },
|
||||||
description: { type: String },
|
description: { type: String },
|
||||||
avatar: { type: String },
|
avatar: { type: String },
|
||||||
@@ -16,4 +18,6 @@ var userSchema = new Schema({
|
|||||||
comment: { type: String }
|
comment: { type: String }
|
||||||
}]
|
}]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
userSchema.plugin(mongooseUniqueValidator);
|
||||||
module.exports = mongoose.model('userModel', userSchema);
|
module.exports = mongoose.model('userModel', userSchema);
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
"method-override": "^2.1.2",
|
"method-override": "^2.1.2",
|
||||||
"mongoose": "latest",
|
"mongoose": "latest",
|
||||||
"morgan": "latest",
|
"morgan": "latest",
|
||||||
"md5": "latest"
|
"md5": "latest",
|
||||||
|
"mongoose-unique-validator": "^1.0.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -122,9 +122,14 @@ apiRoutes.route('/travels/:id')
|
|||||||
.put(travelCtrl.updateTravel)
|
.put(travelCtrl.updateTravel)
|
||||||
.delete(travelCtrl.deleteTravel);
|
.delete(travelCtrl.deleteTravel);
|
||||||
|
|
||||||
apiRoutes.route('/travels/join/:travelId')
|
/*apiRoutes.route('/travels/join/:travelId')
|
||||||
.post(travelCtrl.addJoin);
|
.post(travelCtrl.addJoin);
|
||||||
apiRoutes.route('/travels/unjoin/:travelId')
|
apiRoutes.route('/travels/unjoin/:travelId')
|
||||||
|
.post(travelCtrl.doUnjoin);*/
|
||||||
|
|
||||||
|
apiRoutes.route('/travels/:travelId/join')
|
||||||
|
.post(travelCtrl.addJoin);
|
||||||
|
apiRoutes.route('/travels/:travelId/unjoin')
|
||||||
.post(travelCtrl.doUnjoin);
|
.post(travelCtrl.doUnjoin);
|
||||||
|
|
||||||
apiRoutes.route('/travels/comment/:travelId')
|
apiRoutes.route('/travels/comment/:travelId')
|
||||||
|
|||||||
Reference in New Issue
Block a user