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

Конечные точки посещаемости

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

Базовый путь: /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Поиск времён служений по кампусу и служению
GET/public/:churchIdPublicПолучить дерево кампус → служение → время для церкви. Питает элемент serviceTimes конструктора веб-сайта
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 или Group LeaderСписок всех сессий. Фильтр по ?groupId= (включает названия). Лидеры групп могут просматривать сессии для своих групп
GET/:idJWTAttendance.ViewПолучить сессию по ID
POST/JWTAttendance.Edit или Group LeaderСоздать или обновить сессии. Лидеры групп могут сохранять сессии для своих групп
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 или Group LeaderСписок сессий визитов. Фильтр по ?sessionId=. Лидеры групп могут просматривать сессии визитов для своих групп
GET/:idJWTAttendance.ViewПолучить сессию визита по ID
GET/download/:sessionIdJWTAttendance.ViewЗагрузить посещаемость для сессии (возвращает имена людей со статусом присутствия/отсутствия)
POST/JWTAttendance.EditСоздать или обновить сессии визитов
POST/logJWTAttendance.Edit или Group LeaderБыстрое логирование посещаемости человека в сессию. Автоматически создаёт визит, если необходимо. Лидеры групп могут логировать посещаемость для своих групп
DELETE/:idJWTAttendance.EditУдалить сессию визита по ID
DELETE/?personId=&sessionId=JWTAttendance.Edit или Group LeaderУдалить человека из сессии. Удаляет сессию визита и родительский визит, если не остаются сессии. Лидеры групп могут удалять посещаемость для своих групп

Пример: быстрое логирование посещаемости

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"
}
]

Полосы

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

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

МетодПутьАут.РазрешениеОписание
GET/person/:personIdJWTЗагрузить полосы посещаемости для человека

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