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