This repository has been archived on 2024-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
tracman-server/config/routes/index.js

98 lines
2.4 KiB
JavaScript
Raw Normal View History

'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
// Settings
2017-03-18 12:27:32 -06:00
router.route('/settings').all(mw.ensureAuth, function(req,res,next){
next();
})
// Get settings form
2017-03-18 12:27:32 -06:00
.get(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); }
2017-03-18 12:46:02 -06:00
res.render('settings.html');
});
2017-03-18 12:27:32 -06:00
})
// Set new settings
2017-03-18 12:27:32 -06:00
.post(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. '); }
2017-03-18 12:46:02 -06:00
res.redirect('/settings');
});
})
// Delete user account
2017-03-18 12:27:32 -06:00
.delete(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('/');
}
}
);
});
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-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;