arnaucube
arnaucube/openEventsPlatformServerPublic Self-hosted repository
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};