ipr.question.add

Scope: ipr

Кто может вызывать: Право на связанный тест/курс (canManageCourse) либо на урок; привилегированные — без ограничений. Подробнее: Модель доступа

Создаёт вопрос вместе с вариантами ответов.

HTTP: POST

Побочные эффекты: Создаёт вопрос и варианты ответов в модуле learning; при указанном courseId/определяемом курсе — привязывает вопрос к курсу.

Параметры метода

Параметр Тип Обяз. Описание
title (алиас name) string да Текст вопроса, 1..255 символов
lessonId int да* Урок, к которому привязывается вопрос
testId int да* Тест — если передан, lessonId разрешается автоматически из теста (и должен совпадать, если также передан явно)
type (алиас questionType) string нет S, M, T, R, либо человекочитаемые синонимы (single, multiple, text, sort). По умолчанию S
description string нет Дополнительное описание/пояснение
sort int нет Сортировка
point (алиас points) int нет Балл за верный ответ
correctRequired bool нет Требовать обязательный правильный ответ
active bool нет По умолчанию true
courseId int нет Курс для привязки вопроса. Если не передан — определяется по testId/lessonId
answers array нет Варианты ответов, см. ниже

* Нужен хотя бы один из lessonId/testId.

Структура answers[]

Поле Тип Обяз. Описание
text (алиас answer) string да Текст варианта (пустые элементы пропускаются)
correct bool нет Правильный вариант
sort int нет Сортировка; по умолчанию — позиция в массиве × 10
"answers": [
          { "text": "Своевременность", "correct": true },
          { "text": "Анонимность автора", "correct": false }
        ]
        

Возвращаемые данные

Полный вопрос — та же форма, что у ipr.question.get.

Обработка ошибок

Справочник кодов: error-codes.md.

Код Описание
UNAUTHORIZED Пользователь не авторизован
VALIDATION_ERROR title/lessonId не переданы, некорректный type, lessonId не относится к testId, answers не массив
NOT_FOUND testId не найден
PERMISSION_DENIED Нет прав на связанный тест/курс/урок
INTERNAL_ERROR Не удалось создать вопрос

Пример запроса (POST)

curl -X POST "https://{портал}/rest/{user_id}/{webhook_code}/ipr.question.add.json"
          -H "Content-Type: application/json"
          -H "Accept: application/json"
          --data '{
          "title": "Что из перечисленного относится к принципам обратной связи?",
          "testId": 44,
          "type": "M",
          "point": 2,
          "answers": [
            { "text": "Своевременность", "correct": true },
            { "text": "Анонимность автора", "correct": false }
          ]
        }'
        

Пример ответа

{
          "result": {
            "result": {
              "id": 501,
              "title": "Что из перечисленного относится к принципам обратной связи?",
              "testId": 44,
              "lessonId": 905,
              "type": "M"
            },
            "total": null,
            "next": null,
            "error": null
          }
        }
        

См. также

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