diff --git a/core.js b/core.js index acc0674..eb8555e 100755 --- a/core.js +++ b/core.js @@ -272,65 +272,81 @@ exports.eval_formulae = function(formulae, pull) { } /* -Refresh all repos from all challeneges that are active ('live'). +Refresh specified challenge. +If no argument is provided, all challenges are refreshed, as long as +they are active ('live'). */ -exports.refresh_challenges = function() { - - Challenges.find({'status': 'live'}).exec(gotChallenges); +exports.refresh_challenges = function(challenge) { + if (typeof challenge !== 'undefined') { + gotChallenges('', [challenge]) + } else { + Challenges.find({'status': 'live'}).exec(gotChallenges) + } function gotChallenges(err, all) { - - // For each challenge in pool - for (var c in all) { - - var ch = all[c]; - + all.forEach(function(ch) { // Update last refresh date - var update = {$set: {'refresh': Date.now()}}; - Challenges.update({'link': ch.link}, update).exec(); - - //New request for each repo of challenge - for (var r=0; r ch.start.getTime() && - new Date(pulls[p].created_at).getTime() < ch.end.getTime() && - ch.users.indexOf(pulls[p].user.login) > -1) { + pulls.forEach(function(pull) { + // Accept only pulls created after challenge start date, before end + // date and only from registered users + if (new Date(pull.created_at).getTime() > ch.start.getTime() && + new Date(pull.created_at).getTime() < ch.end.getTime() && + ch.users.indexOf(pull.user.login) > -1) { - create_patch_request(ch, pulls[p]); - } - } - }); - }); - request.end(); + create_patch_request(ch, pull) + } + }) + }) + }) - } - } + request.end() } } @@ -355,6 +371,7 @@ exports.add_user = function(userid, username, callback) { var update = { 'user_id': u.id, 'user_name': u.login, + 'token': '32131231231231321', 'user_fullname': 'Development user', 'user_email': 'dev@github-connect.com', 'avatar_url': 'https://avatars.githubusercontent.com/u/0', diff --git a/routes/challenge.js b/routes/challenge.js index c4217b8..2cdb465 100755 --- a/routes/challenge.js +++ b/routes/challenge.js @@ -261,11 +261,11 @@ Manually refresh challenges. */ exports.refresh = function(req, res) { - Challenges.findOne({'link': req.params.ch}).exec(gotChallenge); + Challenges.findOne({'link': req.params.ch}).exec(gotChallenge) function gotChallenge(err, ch) { - core.refresh_challenges(); - res.redirect('/challenges/' + req.params.ch); + core.refresh_challenges(ch) + res.redirect('/challenges/' + req.params.ch) } };