/
routes.js
76 lines (60 loc) · 2.19 KB
/
routes.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
var express = require( 'express' );
var router = express.Router();
var bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({extended: false});
var mongodb = require( 'mongodb' );
var userQueries = require( './controllers/userQueries' );
var passwordless = require('passwordless');
// var passwordless = require('../../../');
// Homepage for the app,
router.get( '/', userQueries.getPolls );
// GET results page for selected poll
router.get( '/results/:POLLID', userQueries.getResult );
// GET voting page for selected poll
// When testing is complete, remember to reinstate: passwordless.restricted(),
router.get( '/vote/:POLLID', passwordless.restricted( { failureRedirect: '/login' } ), userQueries.getVote );
// POST vote
router.post( '/vote', userQueries.postVote );
// GET new poll
router.get( '/poll', passwordless.restricted( { failureRedirect: '/login', }), userQueries.newPoll );
// POST new poll
router.post( '/poll', userQueries.postPoll );
// GET my polls
router.get( '/my-polls', passwordless.restricted( { failureRedirect: '/login' }), userQueries.getUserPolls );
// POST delete poll
router.post( '/delete/:POLLID', passwordless.restricted( {failureRedirect: '/login' }), userQueries.deletePoll );
// GET privacy
router.get( '/privacy', function( req, res ) {
res.render( 'pages/privacy', { user: req.user } );
})
/* GET restricted site. */
router.get( '/restricted', passwordless.restricted( { failureRedirect: '/login' } ),
function( req, res ) {
res.render( 'pages/restricted' , { user: req.user });
});
/* GET login screen. */
router.get( '/login' , function( req, res ) {
res.render( 'pages/login', { user: req.user });
});
/* GET logout. */
router.get('/logout', passwordless.logout(),
function(req, res) {
res.redirect('/');
});
/* POST login screen. */
router.post('/sendtoken',
urlencodedParser,
passwordless.requestToken(
// Simply accept every user
function(user, delivery, callback) {
callback(null, user)
}),
function(req, res) {
res.render('pages/sent', { user: req.user });
});
router.get ( '*' , function( req, res ) {
res.status( 404 );
res.render( 'pages/not-found', { user: req.user } );
res.end();
})
module.exports = router;