diff --git a/common/models/user.json b/common/models/user.json index 58744194515..521b36f9bf1 100644 --- a/common/models/user.json +++ b/common/models/user.json @@ -182,6 +182,7 @@ { "completedDate": "number", "lastUpdated": "number", + "numOfAttempts": "number", "id": "string", "name": "string", "completedWith": "string", diff --git a/server/boot/challenge.js b/server/boot/challenge.js index fb7da84af76..a4d15b3412b 100644 --- a/server/boot/challenge.js +++ b/server/boot/challenge.js @@ -21,13 +21,15 @@ function buildUserUpdate( const oldChallenge = challengeMap[challengeId]; const alreadyCompleted = !!oldChallenge; - if (alreadyCompleted) { // add data from old challenge - finalChallenge = { + const attempts = oldChallenge.numOfAttempts; + const numOfAttempts = attempts ? attempts + 1 : 0; + finalChallenge = { ...completedChallenge, completedDate: oldChallenge.completedDate, - lastUpdated: completedChallenge.completedDate + lastUpdated: completedChallenge.completedDate, + numOfAttempts: numOfAttempts }; } else { updateData.$push = { @@ -36,7 +38,10 @@ function buildUserUpdate( completedChallenge: challengeId } }; - finalChallenge = completedChallenge; + finalChallenge = { + ...completedChallenge, + numOfAttempts: 1 + }; } updateData.$set = {