Аналитика
Детальная аналитика по отдельному тесту: количество попыток, доля завершения, средний/максимальный/минимальный балл, доля сдавших, разбивка по вопросам и гистограмма распределения баллов. Требует право `view_analytics`.
/api/v1/t/quizzes/:id/analyticsАналитика по тесту
Возвращает агрегаты по одному тесту. Доступ закрыт правом view_analytics: админ и суперадмин проходят неявно, куратору нужен флаг can_view_analytics, студент получает 403. По умолчанию в подсчёт попадают только попытки студентов; флаг include_admin_attempts=true добавляет попытки админов/кураторов (например, для отладки). Кураторы без права manage_groups видят агрегаты только по своим студентам.
Поля avg_score_pct, max_score_pct, min_score_pct и pass_rate могут быть null: первые три — когда нет отправленных попыток, pass_rate — когда у теста не задан проходной балл. Гистограмма score_distribution содержит 10 корзин (0 — диапазон [0%,10%), 9 — диапазон [90%,100%]).
Параметры пути
| Параметр | Тип | Описание |
|---|---|---|
idобяз. | uuid | Идентификатор теста. |
Query-параметры
| Параметр | Тип | Описание |
|---|---|---|
include_admin_attemptsопц. | boolean | Включить ли попытки админов/кураторов в агрегаты. По умолчанию false (только студенты).Пример: false |
Пример запроса
curl "https://api.edumentor.kz/api/v1/t/quizzes/8f3b1c2a-1d2e-4a5b-9c6d-7e8f9a0b1c2d/analytics?include_admin_attempts=false" \
-H "Authorization: Bearer <token>" \
-H "X-Tenant-Subdomain: acme"Пример ответа
{
"success": true,
"data": {
"quiz_id": "8f3b1c2a-1d2e-4a5b-9c6d-7e8f9a0b1c2d",
"attempt_count": 42,
"submitted_count": 38,
"completion_rate": 90.48,
"avg_score_pct": 73.5,
"max_score_pct": 100.0,
"min_score_pct": 20.0,
"pass_rate": 81.58,
"per_question": [
{
"question_id": "1a2b3c4d-...",
"answered": 38,
"correct": 31,
"success_rate": 0.8158
}
],
"score_distribution": [
{ "bucket": 0, "count": 1 },
{ "bucket": 9, "count": 12 }
]
}
}Ошибки
| Код | error | Когда |
|---|---|---|
| 400 | invalid_id_format | Идентификатор теста не является валидным UUID. |
| 400 | invalid_include_admin_attempts | Значение include_admin_attempts не является булевым. |
| 401 | unauthorized | Токен отсутствует, истёк или недействителен. |
| 403 | forbidden | У пользователя нет права view_analytics (например, студент или куратор без флага). |
| 404 | quiz_not_found | Тест не найден в текущей школе. |