diff --git a/backend/src/api/user.ts b/backend/src/api/user.ts index ad16143..1f7311b 100644 --- a/backend/src/api/user.ts +++ b/backend/src/api/user.ts @@ -261,9 +261,27 @@ userRouter.post("/level/:id", async (req: LRequest, res) => { levels: user.levels.concat(id), }; if (id > Math.max(...user.levels)) { - // TODO: Add the levels vocabulary to the users review queue + // TODO: if (!level) + const level = await db.collection("levels").findOne({ + level: id, + }); + + // Convert the level's vocabulary to SM2 metadata + let sm2: { [id: number]: ISM2Metadata } = {}; + level.vocab.forEach((id: number) => { + sm2[id] = { + easiness: 1.3, + consecutiveCorrectAnswers: 0, + nextDueDate: Date.parse((new Date()).toString()), + }; + }); + const newVocabMetadata = Object.assign({}, user.vocabMetadata, sm2); + // Also update the lastLevel attribute - Object.assign(update, { lastLevel: id }); + Object.assign(update, { + lastLevel: id, + vocabMetadata: newVocabMetadata, + }); } await db.collection("users").updateOne({ username: user.username,