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
	 Alexander Polynomdivision
						Alexander Polynomdivision