aboutsummaryrefslogblamecommitdiffstatshomepage
path: root/routes.js
blob: 1062f08829c60e1c7dd46730399c56d01ebe9ba9 (plain) (tree)























                                                               

                                        

                                   
                                                                                               
 



                                      

                                    

                                                                                                                        
 

                                                                                                                      
 



                                                            

                                     
                                                                                                       








                                                                  


                                                                            




                                                                   



                                                                        



                                                                                 
                                                                                            
 
                                                                                                                                                             


                                                                                          
  

/**
 * Dependencies
 */

var users = require('./controllers/users')
  , system = require('./controllers/system');


/*
 * ============================================================
 * Routes
 *
 */

module.exports = function(app, passport, auth) {
    app.get('/', system.index);

    app.get('/test', system.test);

    app.get('/home', system.home);

    app.get('/faq', system.faq);

    app.get('/contact', system.contact);

    app.get('/login', users.login);

    app.post('/login', passport.authenticate('local', { failureRedirect: '/' }), users.signin);

    app.get('/signup', users.signup);

    app.post('/signup', users.create);

    app.post('/test', users.signin);

    app.get('/auth/facebook', passport.authenticate('facebook', { failureRedirect: '/' }), users.signin);
    app.get('/auth/facebook/callback', passport.authenticate('facebook', { failureRedirect: '/' }), users.authCallback);

    app.get('/auth/twitter', passport.authenticate('twitter', { failureRedirect: '/' }), users.signin);
    app.get('/auth/twitter/callback', passport.authenticate('twitter', { failureRedirect: '/' }), users.authCallback);

    app.get('/invite/:randomToken', users.claimInvite);

    app.post('/invite/:randomToken', users.postClaimInvite);

    app.get('/logout', users.logout);

    app.get('/login/:hash', passport.authenticate('hash', { failureRedirect: '/'}), users.randomLogin);

   /**
    * REQUIRES LOGIN
    * ============================================================
    */


    app.get('/dashboard', auth.requiresLogin, system.dashboard);

    app.get('/registerEmail', auth.requiresLogin, users.registerEmail);

    app.post('/registerEmail', auth.requiresLogin, users.postRegisterEmail);

    app.get('/project', auth.requiresLogin, system.project);

    app.get('/project/new', auth.requiresLogin, system.newProject);

    app.post('/project/new', auth.requiresLogin, system.postNewProject);

    app.get('/project/:short', auth.requiresLogin, system.project);

    app.get('/project/:short/post', auth.requiresLogin, system.projectPost);

    app.post('/project/:short/post', auth.requiresLogin, system.postProjectPost);

    app.get('/project/:short/participants', auth.requiresLogin, system.projectParticipants);

    app.post('/project/:short/participants', auth.requiresLogin, users.postProjectParticipants); // goes to the usercontroller because participants are users

    app.get('/project/:short/delete/:post', auth.requiresLogin, system.deleteProjectPost);

};