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
13 travelModel.find(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 });
76};
77
78//PUT
79exports.updateTravel = function(req, res) {
80 ActivityModel.findById(req.params.id, function(err, tvshow) {
81 tvshow.title = req.body.petId;
82 tvshow.year = req.body.year;
83 tvshow.country = req.body.country;
84 tvshow.poster = req.body.poster;
85 tvshow.seasons = req.body.seasons;
86 tvshow.genre = req.body.genre;
87 tvshow.summary = req.body.summary;
88
89 tvshow.save(function(err) {
90 if(err) return res.send(500, err.message);
91 res.status(200).jsonp(tvshow);
92 });
93 });
94};
95
96//DELETE
97exports.deleteTravel = function(req, res) {
98 travelModel.findById(req.params.id, function(err, travel) {
99 travel.remove(function(err) {
100 if(err) return res.send(500, err.message);
101 res.status(200).jsonp(req.params.id);
102 console.log('DELETE /traves/' + req.params.id);
103 })
104 });
105};
106
107
108/* join */
109exports.addJoin = function(req, res) {
110 travelModel.findById(req.params.travelId, function(err, travel){
111 console.log(travel.title);
112 var join = {
113 joinedUserId: req.body.joinedUserId,
114 joinedUsername: req.body.joinedUsername,
115 acceptedUserId: req.body.acceptedUserId,
116 joinedAvatar: req.body.joinedAvatar
117 };
118 travel.joins.push(join);
119
120 travel.save(function(err, travel) {
121 if(err) return res.send(500, err.message);
122 res.status(200).jsonp(travel);
123 });
124 });
125};
126
127exports.doUnjoin = function(req, res) {
128 /*joinModel.find({
129 travelId: req.params.travelId
130 }, function(err, joins) {
131 for(var i=0; i<joins.length; i++)
132 {
133 if(joins[i].joinedUsername==req.body.joinedUsername)
134 {
135 joins[i].remove(function(err) {
136 if(err) return res.send(500, err.message);
137 res.status(200).jsonp('removed');
138 console.log('DELETE /unjoin/' + req.params.id);
139 })
140 }
141 }
142
143 });*/
144 travelModel.findById(req.params.travelId, function(err, travel){
145 for(var i=0; i<travel.joins.length; i++)
146 {
147 if(travel.joins[i].joinedUsername==req.body.joinedUsername)
148 {
149 travel.joins.splice(i, 1);
150 }
151 }
152
153 travel.save(function(err, travel) {
154 if(err) return res.send(500, err.message);
155 res.status(200).jsonp(travel);
156 });
157 });
158};
159
160exports.getJoinsByTravelId = function(req, res) {
161 joinModel.find({
162 travelId: req.params.travelId
163 }, function(err, joins) {
164
165 if (err) throw err;
166
167 if (!joins) {
168 res.json({ success: false, message: 'no joins for travelId' });
169 } else if (joins) {
170 // return the information including token as JSON
171 res.jsonp(joins);
172
173 }
174
175 });
176};
177
178
179/* comment */
180exports.addComment = function(req, res) {
181 var comment = new commentModel({
182 travelId: req.params.travelId,
183 commentUserId: req.body.commentUserId,
184 commentUsername: req.body.commentUsername,
185 comment: req.body.comment,
186 commentAvatar: req.body.commentAvatar
187 });
188
189 comment.save(function(err, comment) {
190 if(err) return res.send(500, err.message);
191 res.status(200).jsonp(comment);
192 });
193};
194
195exports.getCommentsByTravelId = function(req, res) {
196 commentModel.find({
197 travelId: req.params.travelId
198 }, function(err, comments) {
199
200 if (err) throw err;
201
202 if (!comments) {
203 res.json({ success: false, message: 'no comments for travelId' });
204 } else if (comments) {
205 // return the information including token as JSON
206 res.jsonp(comments);
207
208 }
209
210 });
211};