ipr.analytics.course.list

Scope: ipr

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

Возвращает агрегированные показатели прохождения курсов: количество студентов, завершивших курс, число попыток и средний балл, собранные из попыток тестов курса.

HTTP: GET

Побочные эффекты: none

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

Параметр Тип Обяз. Описание
limit int нет Размер страницы, по умолчанию 50, максимум 500
offset int нет Смещение
fetchAll bool нет Вернуть все записи одним ответом (максимум 5000)
filter object нет Фильтр в mongo-style формате

Поля filter (Mongo)

Поле API Соответствие
courseId ID конкретного курса (поддерживает только $eq/скаляр)

Без filter.courseId в выборку попадают все активные курсы, доступные вызывающему по ACL обучения.

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

Массив объектов:

Поле Тип Описание
courseId int ID курса
title string Название курса
studentsCount int Число уникальных студентов, у которых есть хотя бы одна попытка по тестам курса
completedStudentsCount int Число студентов, завершивших хотя бы одну попытку
attemptsCount int Общее число попыток
avgScorePercent number|null Средний процент баллов по попыткам с ненулевым максимальным баллом; null, если таких попыток нет

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

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

Код Описание
UNAUTHORIZED Пользователь не авторизован
PERMISSION_DENIED Нет доступа к аналитике
INTERNAL_ERROR Модуль learning недоступен / внутренняя ошибка
INVALID_LIMIT / LIMIT_EXCEEDED / INVALID_OFFSET / INVALID_FILTER / INVALID_FILTER_OPERATOR Некорректные параметры пагинации/фильтра
FETCH_ALL_LIMIT_EXCEEDED Превышен лимит fetchAll

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

curl -G "https://{портал}/rest/{user_id}/{webhook_code}/ipr.analytics.course.list.json"
          -H "Accept: application/json"
          --data-urlencode "filter[courseId]=305"
        

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

{
          "result": {
            "result": [
              {
                "courseId": 305,
                "title": "Обратная связь 360",
                "studentsCount": 24,
                "completedStudentsCount": 19,
                "attemptsCount": 31,
                "avgScorePercent": 78.42
              }
            ],
            "total": 1,
            "next": null,
            "error": null
          }
        }
        

См. также