tracman-server/config/routes/index.js

70 lines
2.2 KiB
JavaScript
Raw Normal View History

2016-03-31 15:57:34 -06:00
var router = require('express').Router(),
mw = require('../middleware.js'),
mail = require('../mail.js'),
2016-05-29 22:29:01 -06:00
secret = require('../secrets.js'),
2016-03-31 15:57:34 -06:00
User = require('../models/user.js'),
Request = require('../models/request.js');
router.route('/')
2016-05-01 22:59:47 -06:00
.get(function(req,res,next){
2016-05-29 22:29:01 -06:00
// Logged in
2016-03-31 15:57:34 -06:00
if (req.session.passport) {
2016-05-29 22:29:01 -06:00
// Get user
2016-03-31 15:57:34 -06:00
User.findById(req.session.passport.user, function(err, user){
if (err){ mw.throwErr(req,err); }
if (!user){ next(); }
2016-05-29 22:29:01 -06:00
// If user found:
else {
// Redirect user to map
//res.redirect('/trac/'+user.slug+ /*querystring:*/((req.url.indexOf('?')<0)?'':('?'+req.url.split('?')[1])) );
// Open logged-in index
res.render('index.html', {
user: user,
error: req.flash('error')[0],
success: req.flash('succcess')[0]
});
}
2016-03-31 15:57:34 -06:00
});
2016-05-29 22:29:01 -06:00
// Not logged in
2016-03-31 15:57:34 -06:00
} else {
2016-05-29 22:29:01 -06:00
// Show index
2016-03-31 15:57:34 -06:00
res.render('index.html', {
error: req.flash('error')[0],
success: req.flash('success')[0],
inviteSuccess: req.flash('request-success')[0],
inviteError: req.flash('request-error')[0]
});
}
2016-05-29 22:29:01 -06:00
}).post(function(req,res){ // Create request
2016-03-31 15:57:34 -06:00
Request.findOne({email:req.body.email}, function(err, request) {
if (err){ mw.throwErr(req,err); }
if (request){ // Already requested with this email
req.flash('request-error', 'Invite already requested! ');
res.redirect('/#get');
} else { // Send new request
request = new Request({
name: req.body.name,
email: req.body.email,
beg: req.body.why,
requestedTime: Date.now()
}); request.save(function(err) {
if (err){ mw.throwErr(req,err); }
mail.mailgun.messages().send({
from: 'Tracman Requests <requests@tracman.org>',
to: 'Keith Irwin <tracman@keithirwin.us>',
subject: 'New Tracman Invite request',
2016-04-25 00:40:14 -06:00
html: '<p>'+req.body.name+' requested a Tracman invite. </p><p>'+req.body.why+'</p><p><a href="https://tracman.org/admin/requests">See all invites</a></p>',
text: '\n'+req.body.name+' requested a Tracman invite. \n\n'+req.body.why+'\n\nhttps://tracman.org/admin/requests'
2016-03-31 15:57:34 -06:00
}, function(err,body){
if (err){ mw.throwErr(req,err); }
else { req.flash('request-success', 'Invite requested! '); }
res.redirect('/#get');
});
});
}
});
});
module.exports = router;