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 не содержат ФИО.