arnaucube
arnaucube/commonroutesServerPublic Self-hosted repository
commonroutesServer/controllers/travelController.js
controllers/travelController.jsRaw
  1//File: controllers/travelController.js
  2var mongoose = require('mongoose');
  3var travelModel  = mongoose.model('travelModel');
  4
  5var userModel  = mongoose.model('userModel');
  6
  7var joinModel  = mongoose.model('joinModel');
  8
  9//GET
 10exports.findAllTravels = function(req, res) {
 11
 12	travelModel.find(function(err, travels) {
 13	    if(err) res.send(500, err.message);
 14
 15		res.status(200).jsonp(travels);
 16	});
 17
 18
 19};
 20
 21//GET
 22exports.findById = function(req, res) {
 23	travelModel.findById(req.params.id, function(err, travel) {
 24    if(err) return res.send(500, err.message);
 25
 26    console.log('GET /travel/' + req.params.id);
 27		res.status(200).jsonp(travel);
 28	});
 29};
 30
 31exports.findAllTravelsFromUsername = function(req, res) {
 32    travelModel.find({
 33      owner: req.params.username
 34  }, function(err, travels) {
 35
 36      if (err) throw err;
 37
 38      if (!travels) {
 39        res.json({ success: false, message: 'no travels for user' });
 40    } else if (travels) {
 41        console.log(travels);
 42          // return the information including token as JSON
 43          res.jsonp(travels);
 44
 45
 46      }
 47
 48    });
 49};
 50
 51exports.addTravel = function(req, res) {
 52	console.log('POST new travel, title: ' + req.body.title);
 53	var travel = new travelModel({
 54		title: req.body.title,
 55	    description:   req.body.description,
 56	    owner:   req.body.owner,
 57	    from:   req.body.from,
 58	    to:   req.body.to,
 59	    date:   req.body.date,
 60		periodic: req.body.periodic,
 61	    generateddate:   req.body.generateddate,
 62		seats: req.body.seats,
 63		package: req.body.package,
 64		icon: req.body.icon,
 65		phone: req.body.phone,
 66		telegram: req.body.telegram,
 67		collectivized: req.body.collectivized,
 68		modality: req.body.modality
 69	});
 70
 71	travel.save(function(err, travel) {
 72		if(err) return res.send(500, err.message);
 73    res.status(200).jsonp(travel);
 74	});
 75};
 76
 77//PUT
 78exports.updateTravel = function(req, res) {
 79	ActivityModel.findById(req.params.id, function(err, tvshow) {
 80		tvshow.title   = req.body.petId;
 81		tvshow.year    = req.body.year;
 82		tvshow.country = req.body.country;
 83		tvshow.poster  = req.body.poster;
 84		tvshow.seasons = req.body.seasons;
 85		tvshow.genre   = req.body.genre;
 86		tvshow.summary = req.body.summary;
 87
 88		tvshow.save(function(err) {
 89			if(err) return res.send(500, err.message);
 90      res.status(200).jsonp(tvshow);
 91		});
 92	});
 93};
 94
 95//DELETE
 96exports.deleteTravel = function(req, res) {
 97	travelModel.findById(req.params.id, function(err, travel) {
 98		travel.remove(function(err) {
 99			if(err) return res.send(500, err.message);
100      		res.status(200).jsonp(req.params.id);
101		    console.log('DELETE /traves/' + req.params.id);
102		})
103	});
104};
105
106
107/* join */
108exports.addJoin = function(req, res) {
109	var join = new joinModel({
110		travelId: req.body.travelId,
111		joinedUserId: req.body.joinedUserId,
112		joinedUsername: req.body.joinedUsername,
113		acceptedUserId: req.body.acceptedUserId,
114		comment: req.body.comment
115	});
116
117	join.save(function(err, join) {
118		if(err) return res.send(500, err.message);
119    res.status(200).jsonp(join);
120	});
121};
122
123exports.getJoinsByTravelId = function(req, res) {
124    joinModel.find({
125      travelId: req.params.travelId
126  }, function(err, joins) {
127
128      if (err) throw err;
129
130      if (!joins) {
131        res.json({ success: false, message: 'no joins for travelId' });
132    } else if (joins) {
133          // return the information including token as JSON
134		 res.jsonp(joins);
135
136      }
137
138    });
139};