openEventsPlatformServer/controllers/eventController.js
controllers/eventController.jsRaw
1var express = require("express");
2var app = express();
3var config = require('../config'); // get our config file
4app.set('superSecret', config.secret); // secret variable
5var mongoose = require('mongoose');
6
7var userModel = mongoose.model('userModel');
8var eventModel = mongoose.model('eventModel');
9
10var pageSize=config.pageSize;
11
12exports.getAllEvents = function(req, res) {
13 eventModel.find({date: {$gte: new Date()}})
14 .sort('date')
15 .limit(pageSize)
16 .skip(pageSize * Number(req.query.page))
17 .exec(function (err, events) {
18 if (err) return res.send(500, err.message);
19 res.status(200).jsonp(events);
20 });
21};
22exports.getEventById = function (req, res) {
23 eventModel.findOne({_id: req.params.eventid})
24 .lean()
25 .populate('user', 'username avatar telegram phone')
26 .exec(function (err, event) {
27 if (err) return res.send(500, err.message);
28 if (!event) {
29 res.json({success: false, message: 'event not found.'});
30 } else if (event) {
31
32 res.status(200).jsonp(event);
33 }
34 });
35};
36
37
38exports.addEvent = function(req, res) {
39 userModel.findOne({'tokens.token': req.headers['x-access-token']})
40 .exec(function(err, user){
41 if (err) return res.send(500, err.message);
42 if (!user) {
43 console.log("user not found");
44 res.json({success: false, message: 'User not found.'});
45 } else if (user) {
46 var event = new eventModel({
47 title: req.body.title,
48 description: req.body.description,
49 img: req.body.img,
50 date: req.body.date,
51 categories: req.body.categories,
52 generateddate: Date(),
53 user: user._id
54 });
55
56 event.save(function(err, event) {
57 if(err) return res.send(500, err.message);
58
59 user.events.push(event._id);
60 user.save(function (err, user) {
61 if (err) return res.send(500, err.message);
62 exports.getAllEvents(req, res);
63 });
64 });//end of event.save
65 }
66 });//end of usermodel.find
67};
68
69
70/*
71un get events by following, que seria:
72s'envia un post /events/following
73amb la data:
74{
75 users: ['user1', 'user4', 'user8']
76}
77que bàsicament és una array amb els followings que tens
78això retorna els events d'aquests users que segueixes
79*/
80
81/*
82un get events by categories, que seria:
83s'envia un get /events/category/:category
84això retorna els events d'aquests users que segueixes
85*/
86exports.getEventsByCategory = function(req, res) {
87 eventModel.find({
88 date: {$gte: new Date()},
89 'categories.name': req.params.category
90 })
91 .sort('date')
92 .limit(pageSize)
93 .skip(pageSize * Number(req.query.page))
94 .exec(function (err, events) {
95 if (err) return res.send(500, err.message);
96 res.status(200).jsonp(events);
97 });
98};