freeCodeCamp/controllers/challenges.js

39 lines
1.4 KiB
JavaScript
Raw Normal View History

2014-10-20 22:35:42 +00:00
/**
* GET /
2014-11-10 18:29:16 +00:00
* Challenges.
*/
var _ = require('lodash'),
debug = require('debug')('freecc:cntr:challenges'),
Challenge = require('./../models/Challenge'),
resources = require('./resources.json'),
phrases = resources.phrases,
verbs = resources.verbs,
compliments = resources.compliments;
2014-10-20 22:35:42 +00:00
var highestChallengeNumber = 53;
exports.returnChallenge = function(req, res, next) {
var challengeNumber = parseInt(req.params.challengeNumber) || 0;
if (challengeNumber > highestChallengeNumber) { challengeNumber = 0; }
2014-12-23 21:30:20 +00:00
Challenge.find({}, null, { sort: { challengeNumber: 1 } }, function(err, c) {
if (err) {
debug('Challenge err: ', err);
next(err);
}
res.render('challenges/show', {
2014-12-23 05:07:50 +00:00
title: 'Challenge: ' + c[challengeNumber].name,
name: c[challengeNumber].name,
video: c[challengeNumber].video,
time: c[challengeNumber].time,
steps: c[challengeNumber].steps,
2014-12-23 20:16:23 +00:00
number: challengeNumber,
2014-12-23 05:07:50 +00:00
cc: req.user ? req.user.challengesHash : undefined,
points: req.user ? req.user.points : undefined,
verb: verbs[Math.floor(Math.random() * verbs.length)],
compliment: compliments[Math.floor(Math.random() * compliments.length)],
phrase: phrases[Math.floor(Math.random() * phrases.length)],
2014-12-23 05:07:50 +00:00
challenges: c
2014-11-06 23:26:38 +00:00
});
2014-10-20 22:35:42 +00:00
});
};