feat: Add new vocabulary to the review queue
When a level is finished, the vocabulary of that item will be converted into SM2 metadata, which will be appended to the user's vocabMetadata.
This commit is contained in:
parent
4a6b40ad72
commit
4f133c55d2
@ -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,
|
||||
|
Reference in New Issue
Block a user