feat: edit quiz questions over MCP

- quizzes_create_question, update_question, delete_question and
  reorder_questions on /api/v1/quizzes/{slug}/questions
- update_question replaces answers by id (kept, created, deleted), so
  answer ids stored in past attempts stay valid; foreign ids are refused
- classes.CheckQuestion holds the importer's per-question rules, shared
  with the manage routes; attempt scores are never touched (D-16)
This commit is contained in:
Jakub Zych
2026-11-09 14:33:56 +01:00
parent 4a60eda425
commit c6d8d1a973
11 changed files with 792 additions and 44 deletions

View File

@@ -77,6 +77,10 @@ func TestRoutesRegistered(t *testing.T) {
"POST /api/v1/quizzes/{slug}/publish",
"POST /api/v1/quizzes/{slug}/unpublish",
"GET /api/v1/quizzes/{slug}/stats",
"POST /api/v1/quizzes/{slug}/questions",
"PATCH /api/v1/quizzes/{slug}/questions/{id}",
"DELETE /api/v1/quizzes/{slug}/questions/{id}",
"PUT /api/v1/quizzes/{slug}/questions/order",
}
var got []string
for _, r := range router.Routes() {