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 ) ; }
2016-06-12 18:18:34 -06:00
if ( ! user ) { console . log ( req . session . passport ) ; next ( ) ; }
2016-05-29 22:29:01 -06:00
// If user found:
else {
2016-05-31 21:54:21 -06:00
// Open index
2016-05-29 22:29:01 -06:00
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 ;