Get rid of uncompletedChallenges on user object

pull/1319/head^2
Berkeley Martinez 2015-07-23 14:16:22 -07:00
parent eb0dc42089
commit 6de5ad682e
2 changed files with 6 additions and 30 deletions

View File

@ -133,10 +133,6 @@
"resetPasswordExpires": { "resetPasswordExpires": {
"type": "string" "type": "string"
}, },
"uncompletedBonfires": {
"type": "array",
"default": []
},
"completedBonfires": { "completedBonfires": {
"type": [ "type": [
{ {

View File

@ -55,10 +55,12 @@ var unDasherize = utils.unDasherize;
var getMDNLinks = utils.getMDNLinks; var getMDNLinks = utils.getMDNLinks;
function updateUserProgress(user, challengeId, completedChallenge) { function updateUserProgress(user, challengeId, completedChallenge) {
var index = user.uncompletedChallenges.indexOf(challengeId); var alreadyCompleted = user.completedChallenges.some(({ id }) => {
if (index > -1) { return id === challengeId;
});
if (alreadyCompleted) {
user.progressTimestamps.push(Date.now()); user.progressTimestamps.push(Date.now());
user.uncompletedChallenges.splice(index, 1);
} }
user.completedChallenges.push(completedChallenge); user.completedChallenges.push(completedChallenge);
return user; return user;
@ -108,16 +110,6 @@ module.exports = function(app) {
app.use(router); app.use(router);
function returnNextChallenge(req, res, next) { 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 // find the user's current challenge and block
// look in that block and find the index of their current challenge // 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) { 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) { if (!req.user.currentChallenge) {
req.user.currentChallenge = {}; req.user.currentChallenge = {};
req.user.currentChallenge.challengeId = challengeMapWithIds['0'][0]; req.user.currentChallenge.challengeId = challengeMapWithIds['0'][0];
@ -365,7 +346,6 @@ module.exports = function(app) {
const { id, name } = req.body; const { id, name } = req.body;
const { challengeId, challengeName } = req.body.challengeInfo || {}; const { challengeId, challengeName } = req.body.challengeInfo || {};
debug('saving challenge progress');
updateUserProgress( updateUserProgress(
req.user, req.user,
id || challengeId, id || challengeId,
@ -381,7 +361,7 @@ module.exports = function(app) {
saveUser(req.user) saveUser(req.user)
.subscribe( .subscribe(
function() { }, function(user) { debug('user save', user && user.progressTimestamps); },
next, next,
function() { function() {
res.sendStatus(200); res.sendStatus(200);