Конечные точки членства
Модуль членства управляет людьми, церквями, группами, семьями, ролями, разрешениями, формами и параметрами. Это самый большой модуль и обеспечивает основной уровень идентификации и авторизации для всех других модулей.
Базовый путь: /membership
Люди
Базовый путь: /membership/people
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| GET | / | JWT | People.View или Member | Список всех людей для церкви |
| GET | /:id | JWT | People.View или собственная запись | Получить человека по ID (включает отправки формы) |
| GET | /ids?ids= | JWT | People.View или Member | Получить нескольких людей по разделённым запятой ID |
| GET | /basic?ids= | JWT | — | Получить базовую информацию (только имя) для нескольких людей |
| GET | /recent | JWT | People.View или Member | Недавно добавленные люди |
| GET | /search?term=&email= | JWT | People.View или Member | Поиск людей по имени или email |
| GET | /search/phone?number= | JWT | People.View или Member | Поиск по номеру телефона |
| GET | /search/group?groupId= | JWT | People.View или Member | Получить людей в конкретной группе |
| GET | /household/:householdId | JWT | — | Получить всех людей в семье |
| GET | /attendance | JWT | People.Edit | Загрузить участников с фильтрами (campusId, serviceId, serviceTimeId, groupId, categoryName, startDate, endDate) |
| GET | /timeline?personIds=&groupIds= | JWT | — | Загрузить данные временной шкалы для людей и групп |
| GET | /directory/:id | JWT | — | Получить человека для представления справочника (соответствует предпочтениям видимости) |
| GET | /claim/:churchId | JWT | — | Потребовать запись о человеке для текущего пользователя в церкви |
| POST | / | JWT | People.Edit или EditSelf | Создать или обновить людей (пакет) |
| POST | /search | JWT | People.View или Member | Поиск людей (вариант POST) |
| POST | /advancedSearch | JWT | People.View или Member | Поиск с множественными условиями (возраст, месяц рождения, статус членства и т. д.) |
| POST | /loadOrCreate | Public | — | Найти или создать человека по email. Тело: { churchId, email, firstName, lastName } |
| POST | /household/:householdId | JWT | People.Edit | Обновить назначения членов семьи |
| POST | /public/email | Public | — | Отправить письмо человеку. Тело: { churchId, personId, subject, body, appName } |
| POST | /apiEmails | Internal | — | Загрузить письма человека по ID (сервер-сервер, требует jwtSecret) |
| DELETE | /:id | JWT | People.Edit | Удалить человека |
Пример: поиск людей
GET /membership/people/search?term=John
Authorization: Bearer <token>
[
{
"id": "abc-123",
"name": { "first": "John", "last": "Smith" },
"contactInfo": { "email": "john@example.com" },
"membershipStatus": "Member"
}
]
Пример: создание человека
POST /membership/people
Authorization: Bearer <token>
[{ "firstName": "Jane", "lastName": "Doe", "contactInfo": { "email": "jane@example.com" } }]
Пользователи
Базовый путь: /membership/users
См. Аутентификация и разрешения для конечных точек входа, регистрации и управления паролем.
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| POST | /login | Public | — | Вход (email/пароль, JWT обновление или authGuid) |
| POST | /register | Public | — | Регистрировать нового пользователя |
| POST | /forgot | Public | — | Отправить письмо сброса пароля |
| POST | /setPasswordGuid | Public | — | Установить пароль, используя auth GUID из ссылки письма |
| POST | /verifyCredentials | Public | — | Проверить email/пароль и вернуть связанные церкви |
| POST | /loadOrCreate | JWT | — | Найти или создать пользователя по email/userId |
| POST | /setDisplayName | JWT | — | Обновить имя и фамилию пользователя |
| POST | /updateEmail | JWT | — | Изменить адрес email пользователя |
| POST | /updatePassword | JWT | — | Изменить пароль пользователя (мин. 6 символов) |
| POST | /updateOptedOut | JWT | — | Установить статус отказа человека |
| GET | /search?term= | JWT | Server.Admin | Поиск всех пользователей по имени/email |
| DELETE | / | JWT | — | Удалить учётную запись текущего пользователя |
Церкви
Базовый путь: /membership/churches
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| GET | / | JWT | — | Загрузить все церкви для текущего пользователя |
| GET | /:id | JWT | — | Получить церковь по ID |
| GET | /:id/getDomainAdmin | JWT | — | Получить пользователя администратора домена для церкви |
| GET | /:id/impersonate | JWT | Server.Admin | Выдать себя за церковь (только администратор сервера) |
| GET | /all?term= | JWT | Server.Admin | Поиск всех церквей (администратор) |
| GET | /search/?name= | Public | — | Поиск церквей по названию |
| GET | /lookup/?subDomain=&id= | Public | — | Поиск церкви по поддомену или ID |
| POST | / | JWT | Settings.Edit | Обновить детали церкви |
| POST | /add | JWT | — | Регистрировать новую церковь. Обязательные поля: name, address1, city, state, zip, country |
| POST | /search | Public | — | Поиск церквей по названию (вариант POST) |
| POST | /select | JWT | — | Выбрать/переключиться на церковь. Тело: { churchId } или { subDomain } |
| POST | /:id/archive | JWT | Server.Admin | Архивировать или разархивировать церковь |
| POST | /byIds | Public | — | Загрузить несколько церквей по ID |
| DELETE | /deleteAbandoned | JWT | Server.Admin | Удалить церкви, заброшенные на 7+ дней |
Группы
Базовый путь: /membership/groups
Расширяет стандартный CRUD (GET /, GET /:id из базового класса).
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| GET | / | JWT | — | Список всех групп |
| GET | /:id | JWT | — | Получить группу по ID |
| GET | /search?campusId=&serviceId=&serviceTimeId= | JWT | — | Поиск групп по фильтрам служения |
| GET | /my | JWT | — | Получить группы для текущего пользователя |
| GET | /my/:tag | JWT | — | Получить группы текущего пользователя, отфильтрованные по метке |
| GET | /tag/:tag | JWT | — | Получить все группы с конкретной меткой |
| GET | /public/:churchId/:id | Public | — | Получить открытую группу по церкви и ID |
| GET | /public/:churchId/tag/:tag | Public | — | Получить открытые группы по метке |
| GET | /public/:churchId/label?label= | Public | — | Получить открытые группы по ярлыку |
| GET | /public/:churchId/slug/:slug | Public | — | Получить открытую группу по slug |
| POST | / | JWT | Groups.Edit | Создать или обновить группы (автоматически генерирует slug) |
| DELETE | /:id | JWT | Groups.Edit | Удалить группу (также удаляет дочерние команды для групп служения) |
Члены группы
Базовый путь: /membership/groupmembers
Расширяет стандартный CRUD (GET /:id, DELETE /:id из базового класса).
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| GET | /:id | JWT | GroupMembers.View | Получить члена группы по ID |
| GET | / | JWT | GroupMembers.View* | Список членов группы. Фильтр по ?groupId=, ?groupIds= или ?personId=. *Также допускается, если пользователь находится в группе или запрашивает собственный personId |
| GET | /my | JWT | — | Получить членства в группах текущего пользователя |
| GET | /basic/:groupId | JWT | — | Получить базовый список членов для группы |
| GET | /public/leaders/:churchId/:groupId | Public | — | Получить лидеров группы (открытый доступ) |
| GET | /public/:churchId/:groupId | Public | — | Получить открытый список членов группы (минимальные поля: personId, displayName, leader, фото). Только когда группа включает через publicRoster; питает элемент staffGrid конструктора веб-сайта |
| POST | / | JWT | GroupMembers.Edit | Добавить или обновить членов группы |
| DELETE | /:id | JWT | GroupMembers.View | Удалить члена группы |
Семьи
Базовый путь: /membership/households
Стандартный контроллер CRUD.
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| GET | / | JWT | — | Список всех семей |
| GET | /:id | JWT | — | Получить семью по ID |
| POST | / | JWT | People.Edit | Создать или обновить семьи |
| DELETE | /:id | JWT | People.Edit | Удалить семью |
Роли
Базовый путь: /membership/roles
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| GET | /:id | JWT | Roles.View | Получить роль по ID |
| GET | /church/:churchId | JWT | Roles.View | Получить все роли для церкви |
| POST | / | JWT | Roles.Edit | Создать или обновить роли |
| DELETE | /:id | JWT | Roles.Edit | Удалить роль (также удаляет её разрешения и членов) |
Члены роли
Базовый путь: /membership/rolemembers
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| GET | /roles/:id | JWT | Roles.View | Получить членов для роли. Добавьте ?include=users для включения деталей пользователей |
| POST | / | JWT | Roles.Edit | Добавить членов в роль (создаёт пользователя, если email не существует) |
| DELETE | /:id | JWT | Roles.View | Удалить члена роли |
| DELETE | /self/:churchId/:userId | JWT | — | Удалить себя из церкви |
Разрешения роли
Базовый путь: /membership/rolepermissions
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| GET | /roles/:id | JWT | Roles.View | Получить разрешения для роли (используйте null как ID для роли «все») |
| POST | / | JWT | Roles.Edit | Создать или обновить разрешения роли |
| DELETE | /:id | JWT | Roles.Edit | Удалить разрешение роли |
Разрешения
Базовый путь: /membership/permissions
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| GET | / | JWT | — | Получить полный список доступных разрешений |
Формы
Базовый путь: /membership/forms
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| GET | / | JWT | Forms.Admin или Forms.Edit | Список всех форм (администратор видит все; редакторы видят назначенные + формы не членов) |
| GET | /:id | JWT | Доступ к форме | Получить форму по ID |
| GET | /archived | JWT | Forms.Admin или Forms.Edit | Список архивированных форм |
| GET | /standalone/:id?churchId= | JWT | — | Получить отдельную форму (ограниченные формы требуют аутентификации) |
| POST | / | JWT | Forms.Admin или Forms.Edit | Создать или обновить формы |
| DELETE | /:id | JWT | Доступ к форме | Удалить форму |
Отправки форм
Базовый путь: /membership/formsubmissions
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| GET | / | JWT | Forms.Admin или Forms.Edit | Список отправок. Фильтр по ?personId= или ?formId= |
| GET | /:id | JWT | Forms.Admin или Forms.Edit | Получить отправку по ID. Добавьте ?include=form,questions,answers |
| GET | /formId/:formId | JWT | Доступ к форме | Получить все отправки для формы (включает форму, вопросы, ответы) |
| POST | / | JWT | — | Отправить ответы формы (обрабатывает ограниченные/неограниченные формы, отправляет уведомления по email). Когда форма имеет autoCreatePerson, находит-или-создаёт гостя по email и связывает отправку; когда установлены followUpSubject/followUpBody, отправляет шаблонное письмо с ответом отправителю |
| DELETE | /:id | JWT | Forms.Admin или Forms.Edit | Удалить отправку и её ответы |
Вопросы
Базовый путь: /membership/questions
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| GET | / | JWT | Доступ к форме | Список вопросов для формы. Требует ?formId= |
| GET | /:id | JWT | Доступ к форме | Получить вопрос по ID |
| GET | /unrestricted?formId= | JWT | — | Получить вопросы для неограниченной формы |
| GET | /sort/:id/up | JWT | — | Переместить вопрос вверх в порядке сортировки |
| GET | /sort/:id/down | JWT | — | Переместить вопрос вниз в порядке сортировки |
| POST | / | JWT | Доступ к форме | Создать или обновить вопросы (автоматически присваивает порядок сортировки) |
| DELETE | /:id?formId= | JWT | Доступ к форме | Удалить вопрос |
Ответы
Базовый путь: /membership/answers
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| GET | / | JWT | Forms.Admin или Forms.Edit | Список ответов. Фильтр по ?formSubmissionId= |
| POST | / | JWT | Forms.Admin или Forms.Edit | Создать или обновить ответы |
Разрешения членов
Базовый путь: /membership/memberpermissions
Контролирует доступ отдельных членов к конкретным формам.
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| GET | /:id | JWT | Доступ к форме | Получить разрешение члена по ID |
| GET | /member/:id | JWT | Доступ к форме | Получить все разрешения формы для члена |
| GET | /form/:id | JWT | Доступ к форме | Получить все разрешения членов для формы |
| GET | /form/:id/my | JWT | Доступ к форме | Получить разрешение текущего пользователя для формы |
| POST | / | JWT | Доступ к форме | Создать или обновить разрешения членов |
| DELETE | /:id?formId= | JWT | Доступ к форме | Удалить разрешение члена |
| DELETE | /member/:id?formId= | JWT | Доступ к форме | Удалить все разрешения для члена на форме |
Параметры
Базовый путь: /membership/settings
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| GET | / | JWT | Settings.Edit | Получить все параметры для церкви |
| GET | /public/:churchId | Public | — | Получить открытые параметры для церкви |
| POST | / | JWT | Settings.Edit | Сохранить параметры (поддерживает загрузку изображения base64) |
Домены
Базовый путь: /membership/domains
Расширяет стандартный CRUD (GET /:id, GET /, DELETE /:id из базового класса).
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| GET | / | JWT | — | Список всех доменов |
| GET | /:id | JWT | — | Получить домен по ID |
| GET | /lookup/:domainName | JWT | — | Поиск домена по названию |
| GET | /public/lookup/:domainName | Public | — | Открытый поиск домена по названию |
| GET | /health/check | Public | — | Запустить проверку здоровья на непроверенных доменах |
| POST | / | JWT | Settings.Edit | Создать или обновить домены (инициирует обновление Caddy) |
| DELETE | /:id | JWT | Settings.Edit | Удалить домен |
Пользователь-церковь
Базовый путь: /membership/userchurch
Управляет ассоциацией между пользователями и церквями.
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| GET | /userid/:userId | JWT | — | Получить запись пользователя-церкви по ID пользователя |
| GET | /personid/:personId | JWT | — | Получить email для связанного пользователя человека |
| GET | /user/:userId | JWT | Server.Admin | Загрузить все церкви для пользователя |
| POST | / | JWT | — | Создать ассоциацию пользователя-церкви |
| PATCH | /:userId | JWT | — | Обновить время последнего доступа и залогировать доступ |
| DELETE | /record/:userId/:churchId/:personId | JWT | — | Удалить запись пользователя-церкви |
Предпочтения видимости
Базовый путь: /membership/visibilityPreferences
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| GET | /my | JWT | — | Получить предпочтения видимости текущего пользователя |
| POST | / | JWT | — | Сохранить предпочтения видимости (видимость адреса, телефона, email) |
Запрос
Базовый путь: /membership/query
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| POST | /members | JWT | — | Поиск членов на естественном языке с использованием AI. Тело: { text, subDomain, siteUrl } |
Ошибки клиента
Базовый путь: /membership/clientErrors
| Метод | Путь | Аут. | Разрешение | Описание |
|---|---|---|---|---|
| POST | / | JWT | — | Залогировать ошибку на стороне клиента |
Связанные страницы
- Аутентификация и разрешения — поток входа, JWT, OAuth, модель разрешений
- Конечные точки посещаемости — отслеживание служений и визитов
- Структура модуля — шаблоны организации кода