Zum Hauptinhalt springen

Anwesenheits-Endpunkte

Das Attendance-Modul verwaltet Standorte (Campuses), Gottesdienste, Gottesdienstzeiten, Anwesenheitssitzungen, Besuche und Besuchssitzungen. Es stellt die Infrastruktur bereit, um zu verfolgen, wer an welchem Gottesdienst oder Gruppentreffen teilgenommen hat, unterstützt Check-in-Workflows und bietet Berichte zu Anwesenheitstrends und -zusammenfassungen.

Basispfad: /attendance

Campuses

Basispfad: /attendance/campuses

Standard-CRUD-Controller (erweitert GenericCrudController). Bietet die Routen getById, getAll, post und delete über die CRUD-Basisklasse.

MethodePfadAuthBerechtigungBeschreibung
GET/JWTAlle Campuses der Kirche auflisten
GET/:idJWTEinen Campus anhand der ID abrufen
POST/JWTServices.EditCampuses erstellen oder aktualisieren
DELETE/:idJWTServices.EditEinen Campus löschen

Gottesdienste (Services)

Basispfad: /attendance/services

Erweitert GenericCrudController um die CRUD-Routen getById, getAll, post und delete. Die Endpunkte getAll (GET /) und search werden durch benutzerdefinierte Implementierungen überschrieben.

MethodePfadAuthBerechtigungBeschreibung
GET/JWTAlle Gottesdienste auflisten (inklusive Campus-Informationen)
GET/:idJWTEinen Gottesdienst anhand der ID abrufen
GET/search?campusId=JWTGottesdienste nach Campus-ID suchen
POST/JWTServices.EditGottesdienste erstellen oder aktualisieren
DELETE/:idJWTServices.EditEinen Gottesdienst löschen

Beispiel: Gottesdienste nach Campus suchen

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

Gottesdienstzeiten (Service Times)

Basispfad: /attendance/servicetimes

Erweitert GenericCrudController um die CRUD-Routen getById, post und delete. Die Endpunkte getAll und search sind benutzerdefinierte Implementierungen.

MethodePfadAuthBerechtigungBeschreibung
GET/JWTAlle Gottesdienstzeiten auflisten. Filterbar über ?serviceId=. Mit ?include=groups werden zusätzlich Gruppendaten angehängt
GET/:idJWTEine Gottesdienstzeit anhand der ID abrufen
GET/search?campusId=&serviceId=JWTGottesdienstzeiten nach Campus und Gottesdienst suchen
GET/public/:churchIdÖffentlichDen Campus-→-Gottesdienst-→-Zeit-Baum einer Kirche abrufen. Treibt das serviceTimes-Element des Website-Builders an
POST/JWTServices.EditGottesdienstzeiten erstellen oder aktualisieren
DELETE/:idJWTServices.EditEine Gottesdienstzeit löschen

Gruppen-Gottesdienstzeiten

Basispfad: /attendance/groupservicetimes

Verknüpft Gruppen mit bestimmten Gottesdienstzeiten.

MethodePfadAuthBerechtigungBeschreibung
GET/JWTAlle Gruppe-Gottesdienstzeit-Zuordnungen auflisten. Filterbar über ?groupId=, um Zuordnungen inklusive Gottesdienstnamen zu erhalten
GET/:idJWTEine Gruppe-Gottesdienstzeit-Zuordnung anhand der ID abrufen
POST/JWTServices.EditGruppe-Gottesdienstzeit-Zuordnungen erstellen oder aktualisieren
DELETE/:idJWTServices.EditEine Gruppe-Gottesdienstzeit-Zuordnung löschen

Anwesenheitsdatensätze (Attendance Records)

Basispfad: /attendance/attendancerecords

Bietet schreibgeschützte Aggregatansichten von Anwesenheitsdaten für Berichte und Anzeige.

MethodePfadAuthBerechtigungBeschreibung
GET/JWTAttendance.ViewAnwesenheitsdatensätze für eine Person laden. Erfordert ?personId=
GET/treeJWTDen vollständigen Anwesenheitsbaum laden (Campuses, Gottesdienste, Gottesdienstzeiten, Gruppen)
GET/trend?campusId=&serviceId=&serviceTimeId=&groupId=JWTAttendance.View SummaryAnwesenheitstrenddaten mit optionalen Filtern laden
GET/groups?serviceId=&week=JWTAttendance.ViewGruppenanwesenheit für einen Gottesdienst in einer bestimmten Woche laden
GET/search?campusId=&serviceId=&serviceTimeId=&groupId=&startDate=&endDate=JWTAttendance.ViewAnwesenheitsdatensätze mit Filtern durchsuchen (Campus, Gottesdienst, Gottesdienstzeit, Gruppe, Datumsbereich)

Beispiel: Anwesenheitstrend

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

Sitzungen (Sessions)

Basispfad: /attendance/sessions

Erweitert GenericCrudController um die CRUD-Routen getById und delete. Die Endpunkte getAll und save sind benutzerdefinierte Implementierungen, die es auch Gruppenleitern erlauben, Sitzungen für ihre Gruppen zu verwalten.

MethodePfadAuthBerechtigungBeschreibung
GET/JWTAttendance.View oder GruppenleiterAlle Sitzungen auflisten. Filterbar über ?groupId= (inklusive Namen). Gruppenleiter können Sitzungen für ihre eigenen Gruppen einsehen
GET/:idJWTAttendance.ViewEine Sitzung anhand der ID abrufen
POST/JWTAttendance.Edit oder GruppenleiterSitzungen erstellen oder aktualisieren. Gruppenleiter können Sitzungen für ihre eigenen Gruppen speichern
DELETE/:idJWTAttendance.EditEine Sitzung löschen

Besuche (Visits)

Basispfad: /attendance/visits

Verwaltet einzelne Besuchsdatensätze (eine Person, die an einem bestimmten Datum teilnimmt) und stellt den Check-in-Workflow bereit.

MethodePfadAuthBerechtigungBeschreibung
GET/JWTAttendance.ViewAlle Besuche auflisten. Filterbar über ?personId=
GET/:idJWTAttendance.ViewEinen Besuch anhand der ID abrufen
GET/checkin?serviceId=&peopleIds=JWTAttendance.View oder Attendance.CheckinCheck-in-Daten für Personen bei einem Gottesdienst laden. Liefert Besuche mit Besuchssitzungen seit dem letzten protokollierten Datum
POST/JWTAttendance.EditBesuche erstellen oder aktualisieren
POST/checkin?serviceId=&peopleIds=JWTAttendance.Edit oder Attendance.CheckinCheck-in-Daten übermitteln. Erstellt/aktualisiert Besuche und Besuchssitzungen, entfernt veraltete Datensätze
DELETE/:idJWTAttendance.EditEinen Besuch löschen

Beispiel: Check-in-Ablauf

Schritt 1 -- Vorhandene Check-in-Daten laden:

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

Schritt 2 -- Check-in übermitteln:

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

Besuchssitzungen (Visit Sessions)

Basispfad: /attendance/visitsessions

Verwaltet die Zuordnung zwischen Besuchen und Sitzungen (an welcher konkreten Sitzung eine Person während eines Besuchs teilgenommen hat). Bietet außerdem einen Schnellprotokollierungs-Endpunkt sowie einen Download-/Export-Endpunkt.

MethodePfadAuthBerechtigungBeschreibung
GET/JWTAttendance.View oder GruppenleiterBesuchssitzungen auflisten. Filterbar über ?sessionId=. Gruppenleiter können Besuchssitzungen für ihre eigenen Gruppen einsehen
GET/:idJWTAttendance.ViewEine Besuchssitzung anhand der ID abrufen
GET/download/:sessionIdJWTAttendance.ViewAnwesenheit für eine Sitzung herunterladen (liefert Personennamen mit Anwesend/Abwesend-Status)
POST/JWTAttendance.EditBesuchssitzungen erstellen oder aktualisieren
POST/logJWTAttendance.Edit oder GruppenleiterAnwesenheit einer Person für eine Sitzung schnell protokollieren. Erstellt bei Bedarf automatisch einen Besuch. Gruppenleiter können Anwesenheit für ihre eigenen Gruppen protokollieren
DELETE/:idJWTAttendance.EditEine Besuchssitzung anhand der ID löschen
DELETE/?personId=&sessionId=JWTAttendance.Edit oder GruppenleiterEine Person aus einer Sitzung entfernen. Löscht die Besuchssitzung sowie den übergeordneten Besuch, falls keine Sitzungen mehr verbleiben. Gruppenleiter können Anwesenheit für ihre eigenen Gruppen entfernen

Beispiel: Anwesenheit schnell protokollieren

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

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

Beispiel: Sitzungsanwesenheit herunterladen

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

Serien (Streaks)

Basispfad: /attendance/streaks

Verfolgt Anwesenheitsserien für Einzelpersonen -- aufeinanderfolgende Wochen, in denen eine Person teilgenommen hat. Nützlich für Engagement-Kennzahlen und Gamification.

MethodePfadAuthBerechtigungBeschreibung
GET/person/:personIdJWTAnwesenheitsserien für eine Person laden

Verwandte Seiten