tracman-server/config/routes/index.js

94 lines
2.4 KiB
JavaScript
Raw Normal View History

2016-03-31 15:57:34 -06:00
var router = require('express').Router(),
slug = require('slug'),
2016-03-31 15:57:34 -06:00
mw = require('../middleware.js'),
2016-09-08 05:26:12 -06:00
User = require('../models/user.js');
2017-03-14 22:05:03 -06:00
2017-03-14 22:06:51 -06:00
// Shortcut to favicon.ico
2017-03-14 22:05:03 -06:00
router.get('/favicon.ico', function(req,res){
res.redirect('/static/img/icon/by/16-32-48.ico');
});
2017-03-14 22:06:51 -06:00
// Index route
2016-03-31 15:57:34 -06:00
router.route('/')
.get(function(req,res,next){
2016-05-29 22:29:01 -06:00
// Logged in
2017-03-15 01:58:19 -06:00
if ( req.session.passport && req.session.passport.user ){
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){ console.log('Already logged in user not found:', 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-07-01 19:14:36 -06:00
}
// Not logged in
else {
2016-03-31 15:57:34 -06:00
res.render('index.html', {
error: req.flash('error')[0],
2016-08-09 23:51:49 -06:00
success: req.flash('success')[0]
2016-03-31 15:57:34 -06:00
});
}
2016-07-01 19:14:36 -06:00
2016-03-31 15:57:34 -06:00
});
// Settings
router.route('/settings')
// Get settings form
.get(mw.ensureAuth, function(req,res,next){
User.findById(req.session.passport.user, function(err,user){
if (err){ console.log('Error finding settings for user:',err); mw.throwErr(req,err); }
res.render('settings.html', {user:user});
});
// Set new settings
}).post(mw.ensureAuth, function(req,res,next){
User.findByIdAndUpdate(req.session.passport.user, {$set:{
name: req.body.name,
slug: slug(req.body.slug),
email: req.body.email,
settings: {
units: req.body.units,
defaultMap: req.body.map,
defaultZoom: req.body.zoom,
showSpeed: (req.body.showSpeed)?true:false,
showAlt: (req.body.showAlt)?true:false,
showStreetview: (req.body.showStreet)?true:false
}
}}, function(err, user){
if (err) { console.log('Error updating user settings:',err); mw.throwErr(req,err); }
else { req.flash('success', 'Settings updated. '); }
res.redirect('/map#');
});
})
// Delete user account
.delete(mw.ensureAuth, function(req,res,next){
User.findByIdAndRemove( req.session.passport.user,
function(err) {
if (err) {
console.log('Error deleting user:',err);
mw.throwErr(req,err);
} else {
req.flash('success', 'Your account has been deleted. ');
res.redirect('/');
}
}
);
});
router.route('/help')
.get(mw.ensureAuth, function(req,res){
2017-03-15 01:36:36 -06:00
res.render('help.html', {user:req.session.passport.user});
});
2016-03-31 15:57:34 -06:00
module.exports = router;