From 6de5ad682e688b198fc887729cb614767b18e835 Mon Sep 17 00:00:00 2001 From: Berkeley Martinez Date: Thu, 23 Jul 2015 14:16:22 -0700 Subject: [PATCH] Get rid of uncompletedChallenges on user object --- common/models/user.json | 4 ---- server/boot/challenge.js | 32 ++++++-------------------------- 2 files changed, 6 insertions(+), 30 deletions(-) diff --git a/common/models/user.json b/common/models/user.json index 0254ff8407..b49b9cd085 100644 --- a/common/models/user.json +++ b/common/models/user.json @@ -133,10 +133,6 @@ "resetPasswordExpires": { "type": "string" }, - "uncompletedBonfires": { - "type": "array", - "default": [] - }, "completedBonfires": { "type": [ { diff --git a/server/boot/challenge.js b/server/boot/challenge.js index 0f87f40fb1..cf89399296 100644 --- a/server/boot/challenge.js +++ b/server/boot/challenge.js @@ -55,10 +55,12 @@ var unDasherize = utils.unDasherize; var getMDNLinks = utils.getMDNLinks; function updateUserProgress(user, challengeId, completedChallenge) { - var index = user.uncompletedChallenges.indexOf(challengeId); - if (index > -1) { + var alreadyCompleted = user.completedChallenges.some(({ id }) => { + return id === challengeId; + }); + + if (alreadyCompleted) { user.progressTimestamps.push(Date.now()); - user.uncompletedChallenges.splice(index, 1); } user.completedChallenges.push(completedChallenge); return user; @@ -108,16 +110,6 @@ module.exports = function(app) { app.use(router); function returnNextChallenge(req, res, next) { - var completed = req.user.completedChallenges.map(function(elem) { - return elem.id; - }); - - req.user.uncompletedChallenges = utils.allChallengeIds() - .filter(function(elem) { - if (completed.indexOf(elem) === -1) { - return elem; - } - }); // find the user's current challenge and block // look in that block and find the index of their current challenge @@ -157,17 +149,6 @@ module.exports = function(app) { } function returnCurrentChallenge(req, res, next) { - var completed = req.user.completedChallenges.map(function(elem) { - return elem.id; - }); - - req.user.uncompletedChallenges = utils.allChallengeIds() - .filter(function(elem) { - if (completed.indexOf(elem) === -1) { - return elem; - } - }); - if (!req.user.currentChallenge) { req.user.currentChallenge = {}; req.user.currentChallenge.challengeId = challengeMapWithIds['0'][0]; @@ -365,7 +346,6 @@ module.exports = function(app) { const { id, name } = req.body; const { challengeId, challengeName } = req.body.challengeInfo || {}; - debug('saving challenge progress'); updateUserProgress( req.user, id || challengeId, @@ -381,7 +361,7 @@ module.exports = function(app) { saveUser(req.user) .subscribe( - function() { }, + function(user) { debug('user save', user && user.progressTimestamps); }, next, function() { res.sendStatus(200);