ipr.test.attempt.finish
Scope:
iprКто может вызывать: Сам пользователь попытки (
userId == актор) либо тот, кто им управляет (canManageEmployee). Подробнее: Модель доступа
Завершает попытку прохождения теста и фиксирует итоговый результат.
HTTP: POST
Побочные эффекты: Изменяет статус попытки на завершённый, пересчитывает итоговый балл.
Параметры метода
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
attemptId (алиас id) |
int |
да | ID попытки |
dateEnd |
string |
нет | Дата завершения попытки, YYYY-MM-DD или YYYY-MM-DD HH:MM:SS; не раньше начала попытки и не в будущем. Только администратор. Записывается в DATE_END до события OnAfterAttemptFinished, поэтому действия ИПР типа «тест» закрываются этой датой, а проверка завершения курса идёт по ней |
notify |
bool |
нет | По умолчанию true. Значение false отключает IM-уведомления проверяющим — только администратор |
Возвращаемые данные
Та же форма, что у ipr.test.result.get — завершённая попытка с ответами.
Обработка ошибок
Справочник кодов: error-codes.md.
| Код | Описание |
|---|---|
UNAUTHORIZED |
Пользователь не авторизован |
VALIDATION_ERROR |
attemptId не передан; dateEnd в неверном формате, в будущем или раньше начала попытки; notify не булево |
NOT_FOUND |
Попытка не найдена |
PERMISSION_DENIED |
Нет прав на эту попытку; dateEnd или notify=false переданы не администратором |
INTERNAL_ERROR |
Не удалось завершить попытку |
Пример запроса (POST)
curl -X POST "https://{портал}/rest/{user_id}/{webhook_code}/ipr.test.attempt.finish.json"
-H "Content-Type: application/json"
-H "Accept: application/json"
--data '{"attemptId": 9001}'
Пример ответа
{
"result": {
"result": {
"id": 9001,
"testId": 44,
"userId": 15,
"status": "F",
"completed": true,
"score": 8,
"maxScore": 10,
"dateStart": "2026-06-18 12:00:00",
"dateEnd": "2026-06-18 12:14:32",
"answers": [
{ "id": 30001, "questionId": 501, "response": "1", "answered": true, "point": 2, "correct": true }
]
},
"total": null,
"next": null,
"error": null
}
}
См. также
Предыдущая
Следующая