Skip to content

Commit

Permalink
Adding more functionality to team pages
Browse files Browse the repository at this point in the history
  • Loading branch information
xzion committed Jul 21, 2014
1 parent 4a2c1be commit f5382ae
Show file tree
Hide file tree
Showing 2 changed files with 104 additions and 9 deletions.
71 changes: 68 additions & 3 deletions routes/team.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,24 @@
var express = require('express');
var router = express.Router();

/****************
** MIDDLEWARE
****************/

// Session Auth check for redirection
function checkAuth(req, res, next) {
if (!req.session.uid) {
req.session.ref = req.originalUrl;
res.redirect('/login');
} else {
next();
}
}


/****************
** ROUTES
****************/

/* Base team page */
router.get('/', function(req, res) {
Expand All @@ -19,7 +37,7 @@ router.get('/:id', function(req, res) {
res.locals.team = {};
res.locals.team.id = req.params.id;

var infodone, membersdone;
var infodone, membersdone, requestsdone, fansdone;

db.hgetall("team:"+reply, function(err, reply) {

Expand All @@ -29,7 +47,7 @@ router.get('/:id', function(req, res) {
// };
infodone = true;

if (infodone && membersdone) {
if (infodone && membersdone && requestsdone && fansdone) {
res.render('team', {
session : req.session
});
Expand All @@ -43,7 +61,31 @@ router.get('/:id', function(req, res) {

membersdone = true;

if (infodone && membersdone) {
if (infodone && membersdone && requestsdone && fansdone) {
res.render('team', {
session : req.session
});
}
});

db.smembers("team:"+reply+":players:pending", function(err, reply) {
res.locals.team.requests = reply;

requestsdone = true;

if (infodone && membersdone && requestsdone && fansdone) {
res.render('team', {
session : req.session
});
}
});

db.smembers("team:"+reply+":fans", function(err, reply) {
res.locals.team.fans = reply;

fansdone = true;

if (infodone && membersdone && requestsdone && fansdone) {
res.render('team', {
session : req.session
});
Expand All @@ -61,4 +103,27 @@ router.get('/:id', function(req, res) {
});
});


/* GET - JOIN TEAM */
router.get('/:id/join', checkAuth, function(req, res) {
var db = req.db;

db.hget("teamurls", req.params.id, function(err, reply) {
//console.log(reply);

if (reply) {
// Team Exists

db.sadd("team:"+reply+":players:pending", req.session.uid);

res.redirect('/team/'+req.params.id);


} else {
// NO TEAM, HOME/404
res.redirect('/');
}
});
});

module.exports = router;
42 changes: 36 additions & 6 deletions views/team.jade
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,51 @@ extends layout

block content
h1= team.info.name
- if (session.username)
if (session.username)
b You are logged in as #{session.username}<br>
- if (session.uid == team.info.creator)
if (session.uid == team.info.creator)
b You ARE the team creator<br>
- else
if (team.requests)
| There are #{Object.keys(team.requests).length} pending player requests
ul
each req, i in team.requests
li
| UID = #{req}
a(href="/team/#{team.id}/approve/#{req}") Click here to approve
else
b You are NOT the team creator<br>
- var notMem = true
each player, i in team.players
- if (player == session.uid)
if (player == session.uid)
b You ARE a member of this team<br>
- notMem = false
- if (notMem)
if (notMem)
b You are NOT a member of this team<br>
- var reqPending = false
each req, i in team.requests
if (session.uid == req)
- reqPending = true
if (reqPending)
| Your request to join is pending<br>
else
a(href="/team/#{team.id}/join") Click here to apply to join this team
br
br
each fan, i in team.fans
- var isFan = false
if (session.uid == fan)
- isFan = true
if (isFan)
b You ARE a fan of this team!<br>
else
b You are NOT a fan of this team<br>
a(href="/team/#{team.id}/fan") Click here to become a fan
br



| <br>Team ID is #{team.id}<br>
| Game ID is #{team.info.game}<br>
| Creator ID is #{team.info.creator}<br>
| Team currently has #{Object.keys(team.players).length} players.
| Team currently has #{Object.keys(team.players).length} players.<br>
| Team currently has #{Object.keys(team.fans).length} fans.<br>

0 comments on commit f5382ae

Please sign in to comment.