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 if(travel.title==undefined)
73 {
74 return res.status(500).jsonp("empty inputs");
75 }else if(travel.description==undefined)
76 {
77 return res.status(500).jsonp("empty inputs");
78 }else if(travel.from==undefined)
79 {
80 return res.status(500).jsonp("empty inputs");
81 }else if(travel.to==undefined)
82 {
83 return res.status(500).jsonp("empty inputs");
84 }else if(travel.date==undefined)
85 {
86 return res.status(500).jsonp("empty inputs");
87 }else if(travel.seats==undefined)
88 {
89 return res.status(500).jsonp("empty inputs");
90 }else if(travel.title==undefined)
91 {
92 return res.status(500).jsonp("empty inputs");
93 }
94
95 travel.save(function(err, travel) {
96 if(err) return res.send(500, err.message);
97 //res.status(200).jsonp(travel);
98 travelModel.find({date: {$gte: new Date()}}, function(err, travels) {
99 if(err) res.send(500, err.message);
100
101 res.status(200).jsonp(travels);
102 });
103 });
104
105};
106
107//PUT
108exports.updateTravel = function(req, res) {
109 ActivityModel.findById(req.params.id, function(err, tvshow) {
110 tvshow.title = req.body.petId;
111 tvshow.year = req.body.year;
112 tvshow.country = req.body.country;
113 tvshow.poster = req.body.poster;
114 tvshow.seasons = req.body.seasons;
115 tvshow.genre = req.body.genre;
116 tvshow.summary = req.body.summary;
117
118 tvshow.save(function(err) {
119 if(err) return res.send(500, err.message);
120 res.status(200).jsonp(tvshow);
121 });
122 });
123};
124
125//DELETE
126exports.deleteTravel = function(req, res) {
127 travelModel.findById(req.params.id, function(err, travel) {
128 travel.remove(function(err) {
129 if(err) return res.send(500, err.message);
130
131 travelModel.find({date: {$gte: new Date()}}, function(err, travels) {
132 if(err) res.send(500, err.message);
133 res.status(200).jsonp(travels);
134 });
135 })
136 });
137};
138
139
140/* join */
141exports.addJoin = function(req, res) {
142 travelModel.findById(req.params.travelId, function(err, travel){
143 console.log(travel.title);
144 var join = {
145 joinedUserId: req.body.joinedUserId,
146 joinedUsername: req.body.joinedUsername,
147 acceptedUserId: req.body.acceptedUserId,
148 joinedAvatar: req.body.joinedAvatar
149 };
150 travel.joins.push(join);
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.doUnjoin = function(req, res) {
164
165 travelModel.findById(req.params.travelId, function(err, travel){
166 for(var i=0; i<travel.joins.length; i++)
167 {
168 if(travel.joins[i].joinedUsername==req.body.joinedUsername)
169 {
170 travel.joins.splice(i, 1);
171 }
172 }
173
174 travel.save(function(err, travel) {
175 if(err) return res.send(500, err.message);
176 //res.status(200).jsonp(travel);
177 travelModel.find({date: {$gte: new Date()}}, function(err, travels) {
178 if(err) res.send(500, err.message);
179 res.status(200).jsonp(travels);
180 });
181 });
182 });
183};
184
185exports.getJoinsByTravelId = function(req, res) {
186 joinModel.find({
187 travelId: req.params.travelId
188 }, function(err, joins) {
189
190 if (err) throw err;
191
192 if (!joins) {
193 res.json({ success: false, message: 'no joins for travelId' });
194 } else if (joins) {
195 // return the information including token as JSON
196 res.jsonp(joins);
197
198 }
199
200 });
201};
202
203
204/* comment */
205exports.addComment = function(req, res) {
206 /*var comment = new commentModel({
207 travelId: req.params.travelId,
208 commentUserId: req.body.commentUserId,
209 commentUsername: req.body.commentUsername,
210 comment: req.body.comment,
211 commentAvatar: req.body.commentAvatar
212 });
213
214 comment.save(function(err, comment) {
215 if(err) return res.send(500, err.message);
216 res.status(200).jsonp(comment);
217 });*/
218
219 travelModel.findById(req.params.travelId, function(err, travel){
220 console.log(travel.title);
221 var comment = {
222 commentUserId: req.body.commentUserId,
223 commentUsername: req.body.commentUsername,
224 comment: req.body.comment,
225 commentAvatar: req.body.commentAvatar
226 };
227 travel.comments.push(comment);
228
229 travel.save(function(err, travel) {
230 if(err) return res.send(500, err.message);
231 //res.status(200).jsonp(travel);
232 travelModel.find({date: {$gte: new Date()}}, function(err, travels) {
233 if(err) res.send(500, err.message);
234 res.status(200).jsonp(travels);
235 });
236 });
237 });
238};
239
240exports.getCommentsByTravelId = function(req, res) {
241 commentModel.find({
242 travelId: req.params.travelId
243 }, function(err, comments) {
244
245 if (err) throw err;
246
247 if (!comments) {
248 res.json({ success: false, message: 'no comments for travelId' });
249 } else if (comments) {
250 // return the information including token as JSON
251 res.jsonp(comments);
252
253 }
254
255 });
256};