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 var join = new joinModel({
111 travelId: req.params.travelId,
112 joinedUserId: req.body.joinedUserId,
113 joinedUsername: req.body.joinedUsername,
114 acceptedUserId: req.body.acceptedUserId,
115 joinedAvatar: req.body.joinedAvatar
116 });
117
118 join.save(function(err, join) {
119 if(err) return res.send(500, err.message);
120 res.status(200).jsonp(join);
121 });
122};
123
124exports.doUnjoin = function(req, res) {
125 joinModel.find({
126 travelId: req.params.travelId
127 }, function(err, joins) {
128 for(var i=0; i<joins.length; i++)
129 {
130 if(joins[i].joinedUsername==req.body.joinedUsername)
131 {
132 joins[i].remove(function(err) {
133 if(err) return res.send(500, err.message);
134 res.status(200).jsonp('removed');
135 console.log('DELETE /unjoin/' + req.params.id);
136 })
137 }
138 }
139
140 });
141};
142
143exports.getJoinsByTravelId = function(req, res) {
144 joinModel.find({
145 travelId: req.params.travelId
146 }, function(err, joins) {
147
148 if (err) throw err;
149
150 if (!joins) {
151 res.json({ success: false, message: 'no joins for travelId' });
152 } else if (joins) {
153 // return the information including token as JSON
154 res.jsonp(joins);
155
156 }
157
158 });
159};
160
161
162/* comment */
163exports.addComment = function(req, res) {
164 var comment = new commentModel({
165 travelId: req.params.travelId,
166 commentUserId: req.body.commentUserId,
167 commentUsername: req.body.commentUsername,
168 comment: req.body.comment,
169 commentAvatar: req.body.commentAvatar
170 });
171
172 comment.save(function(err, comment) {
173 if(err) return res.send(500, err.message);
174 res.status(200).jsonp(comment);
175 });
176};
177
178exports.getCommentsByTravelId = function(req, res) {
179 commentModel.find({
180 travelId: req.params.travelId
181 }, function(err, comments) {
182
183 if (err) throw err;
184
185 if (!comments) {
186 res.json({ success: false, message: 'no comments for travelId' });
187 } else if (comments) {
188 // return the information including token as JSON
189 res.jsonp(comments);
190
191 }
192
193 });
194};