Перейти к содержимому

API: Опросы

Базовый путь: /api/v1/surveys. Все методы требуют авторизации.

Опрос принадлежит узлу (nodeId, slug, unique (slug, node_id)). Права — как у списков: цепочка survey → node → предки. Пустой ACL = наследование узла. Создать опрос: edit на узел. Пройти: view на опрос + статус open. Конструктор, результаты, Excel: edit на опрос. Удалить: delete. Явные ACL: resourceType=survey, писать может только администратор портала.

МетодНазначение
GET /surveys?nodeId=Каталог узла: { canCreate, items[] }
POST /surveysСоздать: { nodeId, slug, title, addToSideMenu, definition, … }
GET /surveys/{id}Карточка. ?take=true — для прохождения
PATCH /surveys/{id}Метаданные и definition (definition нельзя после первых ответов)
POST /surveys/{id}/publishЧерновик → открыт
POST /surveys/{id}/closeЗакрыть набор
POST /surveys/{id}/reopenСнова открыть
POST /surveys/{id}/duplicateКопия в черновик на том же узле
DELETE /surveys/{id}Удалить
POST /surveys/{id}/submitОтправить ответы { answers }
GET /surveys/{id}/statsАгрегаты для графиков
GET /surveys/{id}/responsesТаблица ответов (page, limit)
POST /surveys/{id}/exportПоставить выгрузку XLSX
GET /surveys/{id}/export/{exportId}Статус выгрузки
GET /surveys/{id}/export/{exportId}/downloadСкачать файл

URL в портале: /{nodePath}/surveys, /{nodePath}/surveys/new, /{nodePath}/surveys/{slug}, .../edit, .../results.

answers — объект questionId → { optionId } | { optionIds } | { text } | { value } | { date } | { userId, display } | { users: [{ userId, display }] }.

В анонимном опросе respondent_id в ответах не сохраняется; выгрузка и responses не содержат ФИО.