feat(cefr): dual mistake ingestion, 1-tap options breakdown, and 260 curated questions
This commit is contained in:
1 parent
a00b330f74
commit
a2eb26ced5
7 files changed
+1277
-95
No files matched your search
+21
@@ -36,6 +36,7 @@ from app.cefr import (
|
||||
get_cefr_quiz_batch,
|
||||
process_cefr_answer,
|
||||
reset_user_cefr_level,
|
||||
ingest_cefr_word,
|
||||
)
|
||||
from app.grammar import (
|
||||
get_grammar_units_list,
|
||||
@@ -185,6 +186,13 @@ class CefrResetRequest(BaseModel):
|
||||
level: str
|
||||
|
||||
|
||||
class CefrAddWordRequest(BaseModel):
|
||||
level: str
|
||||
term: str
|
||||
context_sentence: Optional[str] = ""
|
||||
|
||||
|
||||
|
||||
class GrammarAnswerRequest(BaseModel):
|
||||
unit_id: int
|
||||
exercise_idx: int
|
||||
@@ -1466,6 +1474,19 @@ async def api_cefr_reset(
|
||||
return {"status": "ok", "level": req.level.upper(), "reset_count": deleted}
|
||||
|
||||
|
||||
@app.post("/api/cefr/add-word")
|
||||
async def api_cefr_add_word(
|
||||
req: CefrAddWordRequest,
|
||||
user: dict = Depends(require_user),
|
||||
):
|
||||
"""
|
||||
Adds a word from a CEFR test options list directly into user's SRS active vocabulary.
|
||||
"""
|
||||
with get_db() as conn:
|
||||
return ingest_cefr_word(conn, user["id"], req.level, req.term, req.context_sentence)
|
||||
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Task 16: Murphy Grammar Engine & Handwritten Journaling Endpoints
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
Reference in new issue
Block a user