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');
8var commentModel = mongoose.model('commentModel');
9
10//GET
11exports.findAllTravels = function(req, res) {
12 //get travels with futures dates ($gte - greater than and equal than)
13 travelModel.find({date: {$gte: new Date()}}, function(err, travels) {
14 if(err) res.send(500, err.message);
15
16 res.status(200).jsonp(travels);
17 });
18
19
20};
21
22//GET
23exports.findById = function(req, res) {
24 travelModel.findById(req.params.id, function(err, travel) {
25 if(err) return res.send(500, err.message);
26
27 console.log('GET /travel/' + req.params.id);
28 res.status(200).jsonp(travel);
29 });
30};
31
32exports.findAllTravelsFromUsername = function(req, res) {
33 travelModel.find({
34 owner: req.params.username,
35 date: {$gte: new Date()}
36 }, function(err, travels) {
37
38 if (err) throw err;
39
40 if (!travels) {
41 res.json({ success: false, message: 'no travels for user' });
42 } else if (travels) {
43 console.log(travels);
44 // return the information including token as JSON
45 res.jsonp(travels);
46
47
48 }
49
50 });
51};
52
53exports.addTravel = function(req, res) {
54 console.log('POST new travel, title: ' + req.body.title);
55 var travel = new travelModel({
56 title: req.body.title,
57 description: req.body.description,
58 owner: req.body.owner,
59 from: req.body.from,
60 to: req.body.to,
61 date: req.body.date,
62 periodic: req.body.periodic,
63 generateddate: req.body.generateddate,
64 seats: req.body.seats,
65 package: req.body.package,
66 icon: req.body.icon,
67 phone: req.body.phone,
68 telegram: req.body.telegram,
69 collectivized: req.body.collectivized,
70 modality: req.body.modality
71 });
72
73 travel.save(function(err, travel) {
74 if(err) return res.send(500, err.message);
75 //res.status(200).jsonp(travel);
76 travelModel.find({date: {$gte: new Date()}}, function(err, travels) {
77 if(err) res.send(500, err.message);
78
79 res.status(200).jsonp(travels);
80 });
81 });
82
83};
84
85//PUT
86exports.updateTravel = function(req, res) {
87 ActivityModel.findById(req.params.id, function(err, tvshow) {
88 tvshow.title = req.body.petId;
89 tvshow.year = req.body.year;
90 tvshow.country = req.body.country;
91 tvshow.poster = req.body.poster;
92 tvshow.seasons = req.body.seasons;
93 tvshow.genre = req.body.genre;
94 tvshow.summary = req.body.summary;
95
96 tvshow.save(function(err) {
97 if(err) return res.send(500, err.message);
98 res.status(200).jsonp(tvshow);
99 });
100 });
101};
102
103//DELETE
104exports.deleteTravel = function(req, res) {
105 travelModel.findById(req.params.id, function(err, travel) {
106 travel.remove(function(err) {
107 if(err) return res.send(500, err.message);
108
109 travelModel.find({date: {$gte: new Date()}}, function(err, travels) {
110 if(err) res.send(500, err.message);
111 res.status(200).jsonp(travels);
112 });
113 })
114 });
115};
116
117
118/* join */
119exports.addJoin = function(req, res) {
120 travelModel.findById(req.params.travelId, function(err, travel){
121 console.log(travel.title);
122 var join = {
123 joinedUserId: req.body.joinedUserId,
124 joinedUsername: req.body.joinedUsername,
125 acceptedUserId: req.body.acceptedUserId,
126 joinedAvatar: req.body.joinedAvatar
127 };
128 travel.joins.push(join);
129
130 travel.save(function(err, travel) {
131 if(err) return res.send(500, err.message);
132 //res.status(200).jsonp(travel);
133 travelModel.find({date: {$gte: new Date()}}, function(err, travels) {
134 if(err) res.send(500, err.message);
135 res.status(200).jsonp(travels);
136 });
137 });
138 });
139};
140
141exports.doUnjoin = function(req, res) {
142
143 travelModel.findById(req.params.travelId, function(err, travel){
144 for(var i=0; i<travel.joins.length; i++)
145 {
146 if(travel.joins[i].joinedUsername==req.body.joinedUsername)
147 {
148 travel.joins.splice(i, 1);
149 }
150 }
151
152 travel.save(function(err, travel) {
153 if(err) return res.send(500, err.message);
154 //res.status(200).jsonp(travel);
155 travelModel.find({date: {$gte: new Date()}}, function(err, travels) {
156 if(err) res.send(500, err.message);
157 res.status(200).jsonp(travels);
158 });
159 });
160 });
161};
162
163exports.getJoinsByTravelId = function(req, res) {
164 joinModel.find({
165 travelId: req.params.travelId
166 }, function(err, joins) {
167
168 if (err) throw err;
169
170 if (!joins) {
171 res.json({ success: false, message: 'no joins for travelId' });
172 } else if (joins) {
173 // return the information including token as JSON
174 res.jsonp(joins);
175
176 }
177
178 });
179};
180
181
182/* comment */
183exports.addComment = function(req, res) {
184 /*var comment = new commentModel({
185 travelId: req.params.travelId,
186 commentUserId: req.body.commentUserId,
187 commentUsername: req.body.commentUsername,
188 comment: req.body.comment,
189 commentAvatar: req.body.commentAvatar
190 });
191
192 comment.save(function(err, comment) {
193 if(err) return res.send(500, err.message);
194 res.status(200).jsonp(comment);
195 });*/
196
197 travelModel.findById(req.params.travelId, function(err, travel){
198 console.log(travel.title);
199 var comment = {
200 commentUserId: req.body.commentUserId,
201 commentUsername: req.body.commentUsername,
202 comment: req.body.comment,
203 commentAvatar: req.body.commentAvatar
204 };
205 travel.comments.push(comment);
206
207 travel.save(function(err, travel) {
208 if(err) return res.send(500, err.message);
209 //res.status(200).jsonp(travel);
210 travelModel.find({date: {$gte: new Date()}}, function(err, travels) {
211 if(err) res.send(500, err.message);
212 res.status(200).jsonp(travels);
213 });
214 });
215 });
216};
217
218exports.getCommentsByTravelId = function(req, res) {
219 commentModel.find({
220 travelId: req.params.travelId
221 }, function(err, comments) {
222
223 if (err) throw err;
224
225 if (!comments) {
226 res.json({ success: false, message: 'no comments for travelId' });
227 } else if (comments) {
228 // return the information including token as JSON
229 res.jsonp(comments);
230
231 }
232
233 });
234};