elkay frontend api.py 110-125, 140-148, 620-646,715-743
Browse files- utils/api.py +30 -1
utils/api.py
CHANGED
|
@@ -614,4 +614,33 @@ def record_profit_puzzler_play(user_id: int, puzzles_solved: int, mistakes: int,
|
|
| 614 |
payload = {"user_id": user_id, "puzzles_solved": puzzles_solved, "mistakes": mistakes, "elapsed_ms": elapsed_ms}
|
| 615 |
if gained_xp is not None:
|
| 616 |
payload["gained_xp"] = gained_xp
|
| 617 |
-
return _try_candidates("POST", [("/games/profit_puzzler/record", {"json": payload})])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 614 |
payload = {"user_id": user_id, "puzzles_solved": puzzles_solved, "mistakes": mistakes, "elapsed_ms": elapsed_ms}
|
| 615 |
if gained_xp is not None:
|
| 616 |
payload["gained_xp"] = gained_xp
|
| 617 |
+
return _try_candidates("POST", [("/games/profit_puzzler/record", {"json": payload})])
|
| 618 |
+
|
| 619 |
+
|
| 620 |
+
def generate_quiz(lesson_id: int, level_slug: str, lesson_title: str):
|
| 621 |
+
r = requests.post(f"{BACKEND}/generate_quiz", json={
|
| 622 |
+
"lesson_id": lesson_id,
|
| 623 |
+
"level_slug": level_slug,
|
| 624 |
+
"lesson_title": lesson_title
|
| 625 |
+
}, timeout=60)
|
| 626 |
+
r.raise_for_status()
|
| 627 |
+
return r.json()["quiz"]
|
| 628 |
+
|
| 629 |
+
def submit_quiz(lesson_id: int, level_slug: str, user_answers: list[dict], original_quiz: list[dict]):
|
| 630 |
+
r = requests.post(f"{BACKEND}/submit_quiz", json={
|
| 631 |
+
"lesson_id": lesson_id,
|
| 632 |
+
"level_slug": level_slug,
|
| 633 |
+
"user_answers": user_answers,
|
| 634 |
+
"original_quiz": original_quiz
|
| 635 |
+
}, timeout=90)
|
| 636 |
+
r.raise_for_status()
|
| 637 |
+
return r.json()
|
| 638 |
+
|
| 639 |
+
def tutor_explain(lesson_id: int, level_slug: str, wrong: list[dict]):
|
| 640 |
+
r = requests.post(f"{BACKEND}/tutor/explain", json={
|
| 641 |
+
"lesson_id": lesson_id,
|
| 642 |
+
"level_slug": level_slug,
|
| 643 |
+
"wrong": wrong
|
| 644 |
+
}, timeout=60)
|
| 645 |
+
r.raise_for_status()
|
| 646 |
+
return r.json()["feedback"]
|