Skip to content

Instantly share code, notes, and snippets.

@deedubs
Created February 29, 2012 22:10
Show Gist options
  • Select an option

  • Save deedubs/1944854 to your computer and use it in GitHub Desktop.

Select an option

Save deedubs/1944854 to your computer and use it in GitHub Desktop.

Revisions

  1. deedubs revised this gist Feb 29, 2012. 1 changed file with 8 additions and 5 deletions.
    13 changes: 8 additions & 5 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -1,35 +1,38 @@
    app.get('/questions', auth.requireUser, loadStats, function(req, res) {
    var stats;

    app.get('/questions', auth.requireUser, function(req, res) {
    var status = req.query.status || 'Asked';
    Question
    .where('status', status)
    .find(function(err, questions) {
    res.locals({
    questions: questions
    , currentStatus: status
    , stats: req.stats
    , stats: stats
    });
    res.render('questions');
    });
    });


    function loadStats(req, res, next) {
    function updateStats() {
    Question.count({ status : 'Asked' }, function(err, askedCount){
    Question.count({ status : 'AlreadyAnswered' }, function(err, answeredCount){
    Question.count({ status : 'NeedAnswer' }, function(err, needsAnswerCount){
    Question.count({ status : 'Complete' }, function(err, completeCount){
    req.stats = {
    stats = {
    asked: askedCount
    , answered: answeredCount
    , needsAnswer: needsAnswerCount
    , complete: completeCount
    };
    next();
    });
    });
    });
    });
    }

    updateStats();
    setInterval(updateStats, 10000);


  2. deedubs revised this gist Feb 29, 2012. 1 changed file with 16 additions and 41 deletions.
    57 changes: 16 additions & 41 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,4 @@

    app.get('/questions', auth.requireUser, loadStats, loadAsked, loadAlreadyAnswered, loadNeedAnswer, loadComplete, loadInvalid, function(req, res) {
    app.get('/questions', auth.requireUser, loadStats, function(req, res) {
    var status = req.query.status || 'Asked';
    Question
    .where('status', status)
    @@ -14,47 +13,23 @@ app.get('/questions', auth.requireUser, loadStats, loadAsked, loadAlreadyAnswere
    });


    function loadAsked(req, res, next) {
    Question.count({ status : 'Asked' }, function(err, count){
    req.stats.asked = count;
    next();
    });
    }

    function loadAlreadyAnswered(req, res, next) {
    Question.count({ status : 'AlreadyAnswered' }, function(err, count){
    req.stats.alreadyAnswered = count;
    next();
    });
    }

    function loadNeedAnswer(req, res, next) {
    Question.count({ status : 'NeedAnswer' }, function(err, count){
    req.stats.needAnswer = count;
    next();
    });
    }

    function loadComplete(req, res, next) {
    Question.count({ status : 'Complete' }, function(err, count){
    req.stats.complete = count;
    next();
    });
    }

    function loadInvalid(req, res, next) {
    Question.count({ status : 'Invalid' }, function(err, count){
    req.stats.invalid = count;
    next();
    });
    }

    function loadStats(req, res, next) {
    req.stats = {};
    next();
    Question.count({ status : 'Asked' }, function(err, askedCount){
    Question.count({ status : 'AlreadyAnswered' }, function(err, answeredCount){
    Question.count({ status : 'NeedAnswer' }, function(err, needsAnswerCount){
    Question.count({ status : 'Complete' }, function(err, completeCount){
    req.stats = {
    asked: askedCount
    , answered: answeredCount
    , needsAnswer: needsAnswerCount
    , complete: completeCount
    };
    next();
    });
    });
    });
    });
    }





  3. @shinecita shinecita created this gist Feb 29, 2012.
    60 changes: 60 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,60 @@

    app.get('/questions', auth.requireUser, loadStats, loadAsked, loadAlreadyAnswered, loadNeedAnswer, loadComplete, loadInvalid, function(req, res) {
    var status = req.query.status || 'Asked';
    Question
    .where('status', status)
    .find(function(err, questions) {
    res.locals({
    questions: questions
    , currentStatus: status
    , stats: req.stats
    });
    res.render('questions');
    });
    });


    function loadAsked(req, res, next) {
    Question.count({ status : 'Asked' }, function(err, count){
    req.stats.asked = count;
    next();
    });
    }

    function loadAlreadyAnswered(req, res, next) {
    Question.count({ status : 'AlreadyAnswered' }, function(err, count){
    req.stats.alreadyAnswered = count;
    next();
    });
    }

    function loadNeedAnswer(req, res, next) {
    Question.count({ status : 'NeedAnswer' }, function(err, count){
    req.stats.needAnswer = count;
    next();
    });
    }

    function loadComplete(req, res, next) {
    Question.count({ status : 'Complete' }, function(err, count){
    req.stats.complete = count;
    next();
    });
    }

    function loadInvalid(req, res, next) {
    Question.count({ status : 'Invalid' }, function(err, count){
    req.stats.invalid = count;
    next();
    });
    }

    function loadStats(req, res, next) {
    req.stats = {};
    next();
    }