feat: create, publish, import and report on quizzes over MCP

- quizzes_create_quiz, update_quiz, delete_quiz (confirm repeats the
  slug), publish, unpublish, import_quiz (the existing import route) and
  quiz_stats on new manage routes
- stats close expired open test attempts first, then report per student
  over completed whole-quiz attempts and per question over every
  completed attempt
- input is checked before the database; TestManageAPIAgainstDatabase is
  written and skipped under -short
This commit is contained in:
Jakub Zych
2026-11-09 14:30:31 +01:00
parent e615cc88db
commit 4a60eda425
10 changed files with 1275 additions and 5 deletions

View File

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