Эндпоинты Doing
Модуль Doing управляет планированием служений, расписанием волонтёров, управлением задачами и автоматизациями. Он предоставляет инструменты для создания планов служений с временами и позициями, назначения волонтёров, управления датами блокировки, построения элементов порядка служения, подключения к внешним провайдерам контента и настройки автоматических рабочих процессов с условиями и действиями.
Базовый путь: /doing
Планы
Базовый путь: /doing/plans
| Метод | Путь | Аутентификация | Разрешение | Описание |
|---|---|---|---|---|
| GET | / | JWT | — | Список всех планов церкви |
| GET | /:id | JWT | — | Получить план по ID |
| GET | /ids?ids= | JWT | — | Получить несколько планов по ID через запятую |
| GET | /types/:planTypeId | JWT | — | Получить планы по типу плана |
| GET | /presenter | JWT | — | Получить планы на ближайшие 7 дней (режим презентации) |
| GET | /public/current/:planTypeId | Public | — | Получить текущий план для типа плана |
| POST | / | JWT | — | Создать или обновить планы (принимает один объект или массив) |
| POST | /copy/:id | JWT | — | Копировать план, включая позиции, времена, назначения и элементы порядка служения. Тело включает copyMode ("none", "positions", "all") и copyServiceOrder (boolean) |
| POST | /autofill/:id | JWT | — | Автозаполнение назначений волонтёров для плана. Тело: { teams: [{ positionId, personIds }] } |
| DELETE | /:id | JWT | — | Удалить план и все связанные времена, назначения, позиции и элементы плана |
Пример: Копирование плана
POST /doing/plans/copy/abc-123
Authorization: Bearer <token>
{
"serviceDate": "2026-03-01T10:00:00.000Z",
"copyMode": "all",
"copyServiceOrder": true
}
{
"id": "def-456",
"churchId": "church-1",
"serviceDate": "2026-03-01T10:00:00.000Z"
}
Типы планов
Базовый путь: /doing/planTypes
Наследует базовый CRUD-класс (GET /, GET /:id, POST /, DELETE /:id — без проверки разрешений).
| Метод | Путь | Аутентификация | Разрешение | Описание |
|---|---|---|---|---|
| GET | / | JWT | — | Список всех типов планов |
| GET | /:id | JWT | — | Получить тип плана по ID |
| GET | /ids?ids= | JWT | — | Получить несколько типов планов по ID через запятую |
| GET | /ministryId/:ministryId | JWT | — | Получить типы планов для служения |
| POST | / | JWT | — | Создать или обновить типы планов |
| DELETE | /:id | JWT | — | Удалить тип плана |
Элементы плана
Базовый путь: /doing/planItems
Управляет элементами порядка служения (заголовки, разделы, песни и т.д.), организованными в древовидную структуру «родитель-потомок».
| Метод | Путь | Аутентификация | Разрешение | Описание |
|---|---|---|---|---|
| GET | /:id | JWT | — | Получить элемент плана по ID |
| GET | /ids?ids= | JWT | — | Получить несколько элементов плана по ID через запятую |
| GET | /plan/:planId | JWT | — | Получить все элементы плана (возвращает древовидную структуру) |
| GET | /presenter/:churchId/:planId | Public | — | Получить элементы плана для представления (возвращает древовидную структуру) |
| POST | / | JWT | — | Создать или обновить элементы плана |
| POST | /sort | JWT | — | Обновить порядок сортировки для элемента плана (пересортировка соседних) |
| DELETE | /:id | JWT | — | Удалить элемент плана |
Лента плана
Базовый путь: /doing/planFeed
Предоставляет ленту элементов плана для презентера. Если элементов плана нет, автоматически заполняется из ленты площадки Lessons.church, используя contentId плана.
| Метод | Путь | Аутентификация | Разрешение | Описание |
|---|---|---|---|---|
| GET | /presenter/:churchId/:planId | Public | — | Получить ленту плана для презентера (автозаполнение из ленты площадки, если пусто) |
Позиции
Базовый путь: /doing/positions
Наследует базовый CRUD-класс (GET /:id, POST /, DELETE /:id — без проверки разрешений).
| Метод | Путь | Аутентификация | Разрешение | Описание |
|---|---|---|---|---|
| GET | /:id | JWT | — | Получить позицию по ID |
| GET | /ids?ids= | JWT | — | Получить несколько позиций по ID через запятую |
| GET | /plan/ids?planIds= | JWT | — | Получить позиции для нескольких планов по ID через запятую |
| GET | /plan/:planId | JWT | — | Получить все позиции для плана |
| POST | / | JWT | — | Создать или обновить позиции |
| DELETE | /:id | JWT | — | Удалить позицию |
Времена
Базовый путь: /doing/times
| Метод | Путь | Аутентификация | Разрешение | Описание |
|---|---|---|---|---|
| GET | /all | JWT | — | Список всех времён для церкви |
| GET | /:id | JWT | — | Получить время по ID |
| GET | /plans?planIds= | JWT | — | Получить времена для нескольких планов по ID через запятую |
| GET | /plan/:planId | JWT | — | Получить все времена для плана |
| POST | / | JWT | — | Создать или обновить времена |
| DELETE | /:id | JWT | — | Удалить время |
Назначения
Базовый путь: /doing/assignments
| Метод | Путь | Аутентификация | Разрешение | Описание |
|---|---|---|---|---|
| GET | /my | JWT | — | Получить назначения текущего пользователя |
| GET | /:id | JWT | — | Получить назначение по ID |
| GET | /plan/ids?planIds= | JWT | — | Получить назначения для нескольких планов по ID через запятую |
| GET | /plan/:planId | JWT | — | Получить все назначения для плана |
| POST | / | JWT | — | Создать или обновить назначения (по умолчанию статус «Не подтверждено») |
| POST | /accept/:id | JWT | — | Принять назначение (должен быть назначенным лицом) |
| POST | /decline/:id | JWT | — | Отклонить назначение (должен быть назначенным лицом) |
| DELETE | /:id | JWT | — | Удалить назначение |
Пример: Принятие назначения
POST /doing/assignments/accept/assign-123
Authorization: Bearer <token>
{
"id": "assign-123",
"personId": "person-456",
"positionId": "pos-789",
"planId": "plan-abc",
"status": "Accepted"
}
Даты блокировки
Базовый путь: /doing/blockoutDates
Наследует базовый CRUD-класс (GET /:id, DELETE /:id — без проверки разрешений).
| Метод | Путь | Аутентификация | Разрешение | Описание |
|---|---|---|---|---|
| GET | /:id | JWT | — | Получить дату блокировки по ID |
| GET | /ids?ids= | JWT | — | Получить несколько дат блокировки по ID через запятую |
| GET | /my | JWT | — | Получить даты блокировки текущего пользователя |
| GET | /upcoming | JWT | — | Получить все предстоящие даты блокировки для церкви |
| POST | / | JWT | — | Создать или обновить даты блокировки (по умолчанию personId текущего пользователя, если не указан) |
| DELETE | /:id | JWT | — | Удалить дату блокировки |
Задачи
Базовый путь: /doing/tasks
| Метод | Путь | Аутентификация | Разрешение | Описание |
|---|---|---|---|---|
| GET | / | JWT | — | Получить открытые задачи текущего пользователя |
| GET | /:id | JWT | — | Получить задачу по ID |
| GET | /closed | JWT | — | Получить закрытые задачи текущего пользователя |
| GET | /timeline?taskIds= | JWT | — | Получить данные хронологии для задач по ID через запятую |
| GET | /directoryUpdate/:personId | JWT | — | Получить задачу обновления справочника для человека |
| POST | / | JWT | — | Создать или обновить задачи. Добавьте ?type=directoryUpdate для обработки задач обновления справочника (автозагрузка фотографий) |
| POST | /loadForGroups | JWT | — | Загрузить задачи для конкретных групп. Тело: { groupIds: [], status: "Open" } |
Автоматизации
Базовый путь: /doing/automations
| Метод | Путь | Аутентификация | Разрешение | Описание |
|---|---|---|---|---|
| GET | / | JWT | — | Список всех автоматизаций церкви |
| GET | /:id | JWT | — | Получить автоматизацию по ID |
| GET | /check | Public | — | Запустить проверку всех автоматизаций |
| POST | / | JWT | — | Создать или обновить автоматизации |
| DELETE | /:id | JWT | — | Удалить автоматизацию |
Действия
Базовый путь: /doing/actions
Действия определяют, что происходит при срабатывании автоматизации.
| Метод | Путь | Аутентификация | Разрешение | Описание |
|---|---|---|---|---|
| GET | /:id | JWT | — | Получить действие по ID |
| GET | /automation/:id | JWT | — | Получить все действия для автоматизации |
| POST | / | JWT | — | Создать или обновить действия |
| DELETE | /:id | JWT | — | Удалить действие |
Условия
Базовый путь: /doing/conditions
Условия определяют критерии, запускающие автоматизацию.
| Метод | Путь | Аутентификация | Разрешение | Описание |
|---|---|---|---|---|
| GET | /:id | JWT | — | Получить условие по ID |
| GET | /automation/:id | JWT | — | Получить все условия для автоматизации |
| POST | / | JWT | — | Создать или обновить условия |
| DELETE | /:id | JWT | — | Удалить условие |
Конъюнкции
Базовый путь: /doing/conjunctions
Конъюнкции связывают несколько условий в автоматизации (логика И/ИЛИ).
| Метод | Путь | Аутентификация | Разрешение | Описание |
|---|---|---|---|---|
| GET | /:id | JWT | — | Получить конъюнкцию по ID |
| GET | /automation/:id | JWT | — | Получить все конъюнкции для автоматизации |
| POST | / | JWT | — | Создать или обновить конъюнкции |
| DELETE | /:id | JWT | — | Удалить конъюнкцию |
Авторизации провайдеров контента
Базовый путь: /doing/contentProviderAuths
Наследует базовый CRUD-класс (GET /, GET /:id, POST /, DELETE /:id — без проверки разрешений).
Управляет записями OAuth-аутентификации для внешних провайдеров контента (напр., интеграции с программами для презентаций).
| Метод | Путь | Аутентификация | Разрешение | Описание |
|---|---|---|---|---|
| GET | / | JWT | — | Список всех авторизаций провайдеров контента |
| GET | /:id | JWT | — | Получить авторизацию провайдера контента по ID |
| GET | /ids?ids= | JWT | — | Получить несколько авторизаций провайдеров контента по ID через запятую |
| GET | /ministry/:ministryId | JWT | — | Получить все авторизации провайдеров контента для служения |
| GET | /ministry/:ministryId/:providerId | JWT | — | Получить запись авторизации для конкретного служения и провайдера |
| POST | / | JWT | — | Создать или обновить авторизации провайдеров контента |
| DELETE | /:id | JWT | — | Удалить авторизацию провайдера контента |
Прокси провайдера
Базовый путь: /doing/providerProxy
Проксирует запросы к внешним провайдерам контента (напр., ProPresenter, EasyWorship). Автоматически обновляет токены при их истечении.
| Метод | Путь | Аутентификация | Разрешение | Описание |
|---|---|---|---|---|
| POST | /browse | JWT | — | Просмотр файлов провайдера контента. Тело: { ministryId, providerId, path } |
| POST | /getPresentations | JWT | — | Получить презентации от провайдера контента. Тело: { ministryId, providerId, path } |
| POST | /getPlaylist | JWT | — | Получить плейлист от провайдера контента. Тело: { ministryId, providerId, path, resolution } |
| POST | /getInstructions | JWT | — | Получить инструкции для элемента контента. Тело: { ministryId, providerId, path } |
| POST | /getExpandedInstructions | JWT | — | Получить расширенные инструкции для элемента контента. Тело: { ministryId, providerId, path } |
Связанные страницы
- Эндпоинты Membership — Люди, группы, роли и разрешения
- Эндпоинты Attendance — Отслеживание служений и посещений
- Структура модулей — Паттерны организации кода