2017-03-15 02:01:55 -06:00
|
|
|
'use strict';
|
|
|
|
|
2017-03-15 02:08:12 -06:00
|
|
|
const slug = require('slug'),
|
|
|
|
mw = require('../middleware.js'),
|
|
|
|
User = require('../models/user.js'),
|
|
|
|
router = require('express').Router();
|
2017-03-14 22:05:03 -06:00
|
|
|
|
2017-03-18 12:46:02 -06:00
|
|
|
// Index
|
|
|
|
router.get('/', function(req,res,next){
|
|
|
|
res.render('index.html');
|
|
|
|
});
|
2016-03-31 15:57:34 -06:00
|
|
|
|
2017-03-15 01:33:02 -06:00
|
|
|
// Settings
|
2017-03-18 12:27:32 -06:00
|
|
|
router.route('/settings').all(mw.ensureAuth, function(req,res,next){
|
|
|
|
next();
|
|
|
|
})
|
2017-03-15 01:33:02 -06:00
|
|
|
|
|
|
|
// Get settings form
|
2017-03-18 12:27:32 -06:00
|
|
|
.get(function(req,res,next){
|
2017-03-15 01:33:02 -06:00
|
|
|
User.findById(req.session.passport.user, function(err,user){
|
|
|
|
if (err){ console.log('Error finding settings for user:',err); mw.throwErr(req,err); }
|
2017-03-18 12:46:02 -06:00
|
|
|
res.render('settings.html');
|
2017-03-15 01:33:02 -06:00
|
|
|
});
|
2017-03-18 12:27:32 -06:00
|
|
|
})
|
|
|
|
|
2017-03-15 01:33:02 -06:00
|
|
|
// Set new settings
|
2017-03-18 12:27:32 -06:00
|
|
|
.post(function(req,res,next){
|
2017-03-15 01:33:02 -06:00
|
|
|
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. '); }
|
2017-03-18 12:46:02 -06:00
|
|
|
res.redirect('/settings');
|
2017-03-15 01:33:02 -06:00
|
|
|
});
|
|
|
|
})
|
|
|
|
|
|
|
|
// Delete user account
|
2017-03-18 12:27:32 -06:00
|
|
|
.delete(function(req,res,next){
|
2017-03-15 01:33:02 -06:00
|
|
|
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('/');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
);
|
|
|
|
});
|
2017-03-18 11:21:48 -06:00
|
|
|
|
|
|
|
// Tracman pro
|
2017-03-18 12:27:32 -06:00
|
|
|
router.route('/pro').all(mw.ensureAuth, function(req,res,next){
|
2017-03-18 11:21:48 -06:00
|
|
|
next();
|
2017-03-18 12:27:32 -06:00
|
|
|
})
|
|
|
|
|
|
|
|
// Get info about pro
|
|
|
|
.get(function(req,res,next){
|
2017-03-18 11:21:48 -06:00
|
|
|
User.findById(req.session.passport.user, function(err, user){
|
|
|
|
if (err){ mw.throwErr(req,err); }
|
|
|
|
if (!user){ next(); }
|
2017-03-18 12:46:02 -06:00
|
|
|
else { res.render('pro.html'); }
|
2017-03-18 11:21:48 -06:00
|
|
|
});
|
2017-03-18 12:27:32 -06:00
|
|
|
})
|
|
|
|
|
|
|
|
// Join Tracman pro
|
|
|
|
.post(function(req,res){
|
2017-03-18 11:21:48 -06:00
|
|
|
User.findByIdAndUpdate(req.session.passport.user,
|
|
|
|
{$set:{ isPro:true }},
|
|
|
|
function(err, user){
|
|
|
|
if (err){ mw.throwErr(req,err); }
|
|
|
|
else { req.flash('success','You have been signed up for pro. '); }
|
|
|
|
res.redirect('/map');
|
|
|
|
}
|
|
|
|
);
|
|
|
|
});
|
|
|
|
|
|
|
|
// Help
|
2017-03-18 12:27:32 -06:00
|
|
|
router.route('/help').get(mw.ensureAuth, function(req,res){
|
2017-03-18 12:46:02 -06:00
|
|
|
res.render('help.html');
|
2017-03-15 01:33:02 -06:00
|
|
|
});
|
|
|
|
|
2017-03-18 11:21:48 -06:00
|
|
|
// Terms of Service
|
|
|
|
router.get('/terms', function(req,res){
|
2017-03-18 12:46:02 -06:00
|
|
|
res.render('terms.html');
|
2017-03-18 11:21:48 -06:00
|
|
|
});
|
|
|
|
|
2016-03-31 15:57:34 -06:00
|
|
|
module.exports = router;
|