Przejdź do zawartości głównej

Punkty końcowe frekwencji

Moduł frekwencji zarządza lokalizacjami kampusów, nabożeństwami, godzinami nabożeństw, sesjami frekwencji, wizytami i sesjami wizyt. Zapewnia infrastrukturę do śledzenia, kto uczestniczył w którym nabożeństwie lub spotkaniu grupy, obsługuje procesy zameldowania i oferuje raportowanie trendów oraz podsumowań frekwencji.

Ścieżka bazowa: /attendance

Kampusy​

Ścieżka bazowa: /attendance/campuses

Standardowy kontroler CRUD (dziedziczy po GenericCrudController). Udostępnia trasy getById, getAll, post i delete z klasy bazowej CRUD.

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWT—Wyświetla wszystkie kampusy kościoła
GET/:idJWT—Pobiera kampus według ID
POST/JWTServices.EditTworzy lub aktualizuje kampusy
DELETE/:idJWTServices.EditUsuwa kampus

Nabożeństwa​

Ścieżka bazowa: /attendance/services

Dziedziczy po GenericCrudController z trasami CRUD getById, getAll, post i delete. Punkty końcowe getAll (GET /) i search są nadpisane niestandardowymi implementacjami.

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWT—Wyświetla wszystkie nabożeństwa (zawiera informacje o kampusie)
GET/:idJWT—Pobiera nabożeństwo według ID
GET/search?campusId=JWT—Wyszukuje nabożeństwa według ID kampusu
POST/JWTServices.EditTworzy lub aktualizuje nabożeństwa
DELETE/:idJWTServices.EditUsuwa nabożeństwo

Przykład: wyszukiwanie nabożeństw według kampusu​

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

Godziny nabożeństw​

Ścieżka bazowa: /attendance/servicetimes

Dziedziczy po GenericCrudController z trasami CRUD getById, post i delete. Punkty końcowe getAll i search są niestandardowymi implementacjami.

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWT—Wyświetla wszystkie godziny nabożeństw. Filtruj za pomocą ?serviceId=. Dodaj ?include=groups, aby dołączyć dane grup. Każdy wiersz zawiera obliczaną wartość logiczną checkinOpen (false tylko wtedy, gdy godzina nabożeństwa ma harmonogram zameldowania, którego okno jest w tej chwili zamknięte). Okno jest mierzone w strefie czasowej kampusu nabożeństwa, następnie w strefie czasowej kościoła, potem w strefie pierwszego kampusu, który ją ma, a na końcu w America/New_York
GET/:idJWT—Pobiera godzinę nabożeństwa według ID
GET/search?campusId=&serviceId=JWT—Wyszukuje godziny nabożeństw według kampusu i nabożeństwa
GET/public/:churchIdPubliczny—Pobiera drzewo kampus → nabożeństwo → godzina dla kościoła. Zasila element serviceTimes kreatora strony internetowej
POST/JWTServices.EditTworzy lub aktualizuje godziny nabożeństw. Opcjonalne pola harmonogramu: dayOfWeek (0 = niedziela … 6), startTime / endTime (HH:mm), checkinOpenMinutes (przed rozpoczęciem), checkinCloseMinutes (po zakończeniu). Zameldowanie jest ograniczone czasowo tylko wtedy, gdy ustawiono zarówno dayOfWeek, jak i startTime
DELETE/:idJWTServices.EditUsuwa godzinę nabożeństwa

Godziny nabożeństw grup​

Ścieżka bazowa: /attendance/groupservicetimes

Łączy grupy z konkretnymi godzinami nabożeństw.

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWT—Wyświetla wszystkie powiązania grup z godzinami nabożeństw. Filtruj za pomocą ?groupId=, aby otrzymać powiązania wraz z nazwami nabożeństw
GET/:idJWT—Pobiera powiązanie grupy z godziną nabożeństwa według ID
POST/JWTServices.EditTworzy lub aktualizuje powiązania grup z godzinami nabożeństw
DELETE/:idJWTServices.EditUsuwa powiązanie grupy z godziną nabożeństwa

Rekordy frekwencji​

Ścieżka bazowa: /attendance/attendancerecords

Udostępnia widoki zagregowanych danych frekwencji tylko do odczytu, do raportowania i wyświetlania.

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWTAttendance.ViewWczytuje rekordy frekwencji osoby. Wymaga ?personId=
GET/myJWT—Zakres własny: rekordy frekwencji zalogowanego członka z ostatnich 12 miesięcy, od najnowszych. Zwraca 401, jeśli użytkownik nie jest powiązany z osobą. Zasila sekcję Moja frekwencja na stronie B1 Me
GET/treeJWT—Wczytuje pełne drzewo frekwencji (kampusy, nabożeństwa, godziny nabożeństw, grupy)
GET/trend?campusId=&serviceId=&serviceTimeId=&groupId=JWTAttendance.View SummaryWczytuje dane trendów frekwencji z opcjonalnymi filtrami
GET/groups?serviceId=&week=JWTAttendance.ViewWczytuje frekwencję grup dla nabożeństwa w danym tygodniu
GET/sessionStatus?serviceTimeId=&date=JWTAttendance.ViewDla każdej grupy przypisanej do godziny nabożeństwa zwraca { groupId, sessionId, attendanceCount } dla danej daty (date w formacie YYYY-MM-DD; sessionId ma wartość null, jeśli grupa nie ma sesji). Zasila okno dialogowe Kto jeszcze potrzebuje frekwencji w B1Admin
GET/search?campusId=&serviceId=&serviceTimeId=&groupId=&startDate=&endDate=JWTAttendance.ViewWyszukuje rekordy frekwencji z filtrami (kampus, nabożeństwo, godzina nabożeństwa, grupa, zakres dat)

Przykład: trend frekwencji​

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

Sesje​

Ścieżka bazowa: /attendance/sessions

Dziedziczy po GenericCrudController z trasami CRUD getById i delete. Punkty końcowe getAll i save są niestandardowymi implementacjami, które pozwalają również liderom grup zarządzać sesjami swoich grup.

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWTAttendance.View lub Lider grupyWyświetla wszystkie sesje. Filtruj za pomocą ?groupId= (zawiera nazwy). Liderzy grup mogą przeglądać sesje swoich grup
GET/:idJWTAttendance.ViewPobiera sesję według ID
POST/JWTAttendance.Edit lub Lider grupyTworzy lub aktualizuje sesje. Liderzy grup mogą zapisywać sesje dla swoich grup
DELETE/:idJWTAttendance.EditUsuwa sesję

Wizyty​

Ścieżka bazowa: /attendance/visits

Zarządza pojedynczymi rekordami wizyt (osoba uczestnicząca w określonym dniu) i zapewnia proces zameldowania.

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWTAttendance.ViewWyświetla wszystkie wizyty. Filtruj za pomocą ?personId=
GET/:idJWTAttendance.ViewPobiera wizytę według ID
GET/checkin?serviceId=&peopleIds=JWTAttendance.View lub Attendance.CheckinWczytuje dane zameldowania osób na nabożeństwie. Zwraca wizyty z sesjami wizyt z ostatniej zarejestrowanej daty
POST/JWTAttendance.EditTworzy lub aktualizuje wizyty
POST/checkin?serviceId=&peopleIds=JWTAttendance.Edit lub Attendance.CheckinPrzesyła dane zameldowania. Tworzy lub aktualizuje wizyty i sesje wizyt, usuwa nieaktualne rekordy
DELETE/:idJWTAttendance.EditUsuwa wizytę

Przykład: proces zameldowania​

Krok 1 — wczytaj istniejące dane zameldowania:

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

Krok 2 — prześlij zameldowanie:

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

Jeśli docelowa godzina nabożeństwa ma harmonogram zameldowania, a jej okno jest zamknięte (mierzone w tej samej kolejności stref czasowych, z pierwszeństwem kampusu, co w checkinOpen), nic nie zostaje zapisane, a odpowiedź ma postać 409 { "error": "notOpen", "groups": [{ "groupId", "groupName", "reason": "notOpen" }] }. Naruszenia pojemności i proporcji wolontariuszy również zwracają 409 (error: "capacity" lub "ratio"). Sesje, które osoba już ma na dzisiaj (ponownie wysyłane przy każdym zameldowaniu), pomijają sprawdzenie okna, dzięki czemu gospodarstwo domowe może dodać otwartą godzinę nabożeństwa po zamknięciu okna wcześniejszej.

Sesje wizyt​

Ścieżka bazowa: /attendance/visitsessions

Zarządza powiązaniem wizyt z sesjami (na którą konkretną sesję osoba uczestniczyła podczas wizyty). Udostępnia także szybki punkt końcowy rejestrowania oraz punkt końcowy pobierania i eksportu.

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWTAttendance.View lub Lider grupyWyświetla sesje wizyt. Filtruj za pomocą ?sessionId=. Liderzy grup mogą przeglądać sesje wizyt swoich grup
GET/:idJWTAttendance.ViewPobiera sesję wizyty według ID
GET/download/:sessionIdJWTAttendance.ViewPobiera frekwencję dla sesji (zwraca imiona i nazwiska osób ze statusem obecności lub nieobecności)
POST/JWTAttendance.EditTworzy lub aktualizuje sesje wizyt
POST/logJWTAttendance.Edit lub Lider grupySzybko rejestruje frekwencję osoby na sesji. Automatycznie tworzy wizytę, jeśli to potrzebne. Liderzy grup mogą rejestrować frekwencję dla swoich grup
DELETE/:idJWTAttendance.EditUsuwa sesję wizyty według ID
DELETE/?personId=&sessionId=JWTAttendance.Edit lub Lider grupyUsuwa osobę z sesji. Usuwa sesję wizyty oraz wizytę nadrzędną, jeśli nie pozostały żadne sesje. Liderzy grup mogą usuwać frekwencję dla swoich grup

Przykład: szybkie rejestrowanie frekwencji​

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

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

Przykład: pobieranie frekwencji sesji​

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

Serie obecności​

Ścieżka bazowa: /attendance/streaks

Śledzi serie obecności poszczególnych osób, czyli kolejne tygodnie, w których dana osoba uczestniczyła. Przydatne do wskaźników zaangażowania i gamifikacji.

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/person/:personIdJWT—Wczytuje serie obecności osoby

Powiązane strony​