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

Эндпоинты Attendance

Модуль Attendance управляет местоположениями кампусов, служениями, временем служений, сессиями посещаемости, визитами и сессиями визитов. Он обеспечивает инфраструктуру для отслеживания того, кто посетил какое служение или встречу группы, поддерживает процессы регистрации и предоставляет отчёты о тенденциях и сводках посещаемости.

Базовый путь: /attendance

Кампусы

Базовый путь: /attendance/campuses

Стандартный CRUD-контроллер (наследует GenericCrudController). Предоставляет маршруты getById, getAll, post и delete через базовый CRUD-класс.

МетодПутьАутентификацияРазрешениеОписание
GET/JWTСписок всех кампусов церкви
GET/:idJWTПолучить кампус по ID
POST/JWTServices.EditСоздать или обновить кампусы
DELETE/:idJWTServices.EditУдалить кампус

Служения

Базовый путь: /attendance/services

Наследует GenericCrudController с CRUD-маршрутами getById, getAll, post и delete. Маршруты getAll (GET /) и search переопределены пользовательскими реализациями.

МетодПутьАутентификацияРазрешениеОписание
GET/JWTСписок всех служений (включает информацию о кампусе)
GET/:idJWTПолучить служение по ID
GET/search?campusId=JWTПоиск служений по ID кампуса
POST/JWTServices.EditСоздать или обновить служения
DELETE/:idJWTServices.EditУдалить служение

Пример: Поиск служений по кампусу

GET /attendance/services/search?campusId=abc-123
Authorization: Bearer <token>
[
{
"id": "svc-001",
"churchId": "church-123",
"campusId": "abc-123",
"name": "Sunday Morning"
}
]

Время служений

Базовый путь: /attendance/servicetimes

Наследует GenericCrudController с CRUD-маршрутами getById, post и delete. Маршруты getAll и search являются пользовательскими реализациями.

МетодПутьАутентификацияРазрешениеОписание
GET/JWTСписок всех времён служений. Фильтр по ?serviceId=. Добавьте ?include=groups для включения данных о группах
GET/:idJWTПолучить время служения по ID
GET/search?campusId=&serviceId=JWTПоиск времён служений по кампусу и служению
POST/JWTServices.EditСоздать или обновить время служений
DELETE/:idJWTServices.EditУдалить время служения

Время служений для групп

Базовый путь: /attendance/groupservicetimes

Связывает группы с определёнными временами служений.

МетодПутьАутентификацияРазрешениеОписание
GET/JWTСписок всех связей группа-время служения. Фильтр по ?groupId= для получения связей с названиями служений
GET/:idJWTПолучить связь группа-время служения по ID
POST/JWTServices.EditСоздать или обновить связи группа-время служения
DELETE/:idJWTServices.EditУдалить связь группа-время служения

Записи посещаемости

Базовый путь: /attendance/attendancerecords

Предоставляет агрегированные представления данных посещаемости только для чтения, для отчётности и отображения.

МетодПутьАутентификацияРазрешениеОписание
GET/JWTAttendance.ViewЗагрузить записи посещаемости для человека. Требуется ?personId=
GET/treeJWTЗагрузить полное дерево посещаемости (кампусы, служения, времена служений, группы)
GET/trend?campusId=&serviceId=&serviceTimeId=&groupId=JWTAttendance.View SummaryЗагрузить данные о тенденциях посещаемости с необязательными фильтрами
GET/groups?serviceId=&week=JWTAttendance.ViewЗагрузить посещаемость групп для служения за определённую неделю
GET/search?campusId=&serviceId=&serviceTimeId=&groupId=&startDate=&endDate=JWTAttendance.ViewПоиск записей посещаемости с фильтрами (кампус, служение, время служения, группа, диапазон дат)

Пример: Тенденция посещаемости

GET /attendance/attendancerecords/trend?serviceId=svc-001
Authorization: Bearer <token>
[
{ "week": "2025-01-05", "count": 142 },
{ "week": "2025-01-12", "count": 156 },
{ "week": "2025-01-19", "count": 138 }
]

Сессии

Базовый путь: /attendance/sessions

Наследует GenericCrudController с CRUD-маршрутами getById и delete. Маршруты getAll и save являются пользовательскими реализациями, которые также позволяют лидерам групп управлять сессиями своих групп.

МетодПутьАутентификацияРазрешениеОписание
GET/JWTAttendance.View или лидер группыСписок всех сессий. Фильтр по ?groupId= (включает имена). Лидеры групп могут просматривать сессии своих групп
GET/:idJWTAttendance.ViewПолучить сессию по ID
POST/JWTAttendance.Edit или лидер группыСоздать или обновить сессии. Лидеры групп могут сохранять сессии своих групп
DELETE/:idJWTAttendance.EditУдалить сессию

Визиты

Базовый путь: /attendance/visits

Управляет отдельными записями визитов (посещение человеком в определённую дату) и обеспечивает процесс регистрации.

МетодПутьАутентификацияРазрешениеОписание
GET/JWTAttendance.ViewСписок всех визитов. Фильтр по ?personId=
GET/:idJWTAttendance.ViewПолучить визит по ID
GET/checkin?serviceId=&peopleIds=JWTAttendance.View или Attendance.CheckinЗагрузить данные регистрации для людей на служении. Возвращает визиты с сессиями визитов от последней зарегистрированной даты
POST/JWTAttendance.EditСоздать или обновить визиты
POST/checkin?serviceId=&peopleIds=JWTAttendance.Edit или Attendance.CheckinОтправить данные регистрации. Создаёт/обновляет визиты и сессии визитов, удаляет устаревшие записи
DELETE/:idJWTAttendance.EditУдалить визит

Пример: Процесс регистрации

Шаг 1 -- Загрузка существующих данных регистрации:

GET /attendance/visits/checkin?serviceId=svc-001&peopleIds=person-1,person-2
Authorization: Bearer <token>
[
{
"id": "visit-001",
"personId": "person-1",
"visitDate": "2025-01-19T00:00:00.000Z",
"visitSessions": [
{
"id": "vs-001",
"sessionId": "sess-001",
"visitId": "visit-001",
"session": {
"id": "sess-001",
"groupId": "group-001",
"serviceTimeId": "st-001",
"sessionDate": "2025-01-19T00:00:00.000Z"
}
}
]
}
]

Шаг 2 -- Отправка регистрации:

POST /attendance/visits/checkin?serviceId=svc-001&peopleIds=person-1,person-2
Authorization: Bearer <token>

[
{
"personId": "person-1",
"visitSessions": [
{
"session": { "serviceTimeId": "st-001", "groupId": "group-001" }
}
]
}
]

Сессии визитов

Базовый путь: /attendance/visitsessions

Управляет связью между визитами и сессиями (какую именно сессию посетил человек во время визита). Также предоставляет эндпоинт быстрой записи и эндпоинт скачивания/экспорта.

МетодПутьАутентификацияРазрешениеОписание
GET/JWTAttendance.View или лидер группыСписок сессий визитов. Фильтр по ?sessionId=. Лидеры групп могут просматривать сессии визитов своих групп
GET/:idJWTAttendance.ViewПолучить сессию визита по ID
GET/download/:sessionIdJWTAttendance.ViewСкачать посещаемость сессии (возвращает имена людей со статусом присутствия/отсутствия)
POST/JWTAttendance.EditСоздать или обновить сессии визитов
POST/logJWTAttendance.Edit или лидер группыБыстрая запись посещаемости человека в сессию. Автоматически создаёт визит при необходимости. Лидеры групп могут записывать посещаемость своих групп
DELETE/:idJWTAttendance.EditУдалить сессию визита по ID
DELETE/?personId=&sessionId=JWTAttendance.Edit или лидер группыУдалить человека из сессии. Удаляет сессию визита и родительский визит, если не осталось сессий. Лидеры групп могут удалять посещаемость своих групп

Пример: Быстрая запись посещаемости

POST /attendance/visitsessions/log
Authorization: Bearer <token>

{
"personId": "person-001",
"visitSessions": [
{ "sessionId": "sess-001" }
]
}
{}

Пример: Скачивание посещаемости сессии

GET /attendance/visitsessions/download/sess-001
Authorization: Bearer <token>
[
{
"id": "vs-001",
"personId": "person-001",
"visitId": "visit-001",
"sessionDate": "2025-01-19T00:00:00.000Z",
"personName": "John Smith",
"status": "present"
},
{
"id": "",
"personId": "person-002",
"visitId": "",
"sessionDate": "2025-01-19T00:00:00.000Z",
"personName": "Jane Doe",
"status": "absent"
}
]

Связанные страницы