Тесты

Тесты курса (модуль learning): управление тестами, прохождение попыток и результаты.

Методы

Метод HTTP Назначение
ipr.test.list GET Список тестов
ipr.test.get GET Тест по ID
ipr.test.add POST Создать тест в курсе
ipr.test.update POST Изменить тест
ipr.test.delete POST Удалить тест
ipr.test.attempt.start POST Начать попытку прохождения теста
ipr.test.attempt.answer POST Сохранить ответ на вопрос в рамках попытки
ipr.test.attempt.finish POST Завершить попытку
ipr.test.attempt.list GET Список попыток прохождения
ipr.test.result.get GET Результат попытки с ответами

Модель доступа

Чтение списка (list) — по ACL обучения; get не требует дополнительной проверки владения курсом сверх обычной авторизации. Изменение теста (add/update/delete) требует canManageCourse(courseId) или привилегированного статуса.

Прохождение (attempt.start/answer/finish) доступно самому пользователю (userId == актор) либо тому, кто им управляет (canManageEmployee). attempt.list для непривилегированных по умолчанию ограничен собственными попытками (если явно не указан доступный filter.userId). result.get доступен самому пользователю, тому, кто им управляет, либо привилегированному.

Требует подключённого модуля learning.

Жизненный цикл попытки

attempt.start → attempt.answer (0..N раз) → attempt.finish
        

Вопросы попытки формируются при attempt.start — если у теста нет ни одного вопроса, метод вернёт VALIDATION_ERROR.

См. также

Предыдущая
Следующая