Naar hoofdinhoud gaan

Aanwezigheid Eindpunten

De Aanwezigheidsmodule beheert campuslocaties, diensten, servicetijden, aanwezigheidssessies, bezoeken en bezoekssessies. Het biedt de infrastructuur voor het bijhouden van wie welke dienst of groepsbijeenkomst heeft bijgewoond, ondersteunt incheckinworkflows en biedt aanwezigheids- en samenvattingsrapportage.

Basispad: /attendance

Campussen

Basispad: /attendance/campuses

Standaard CRUD controller (breidt GenericCrudController uit). Biedt getById, getAll, post en delete routes via de CRUD basisklasse.

MethodePadVerwijzingToestemmingBeschrijving
GET/JWTLijst alle campussen voor de kerk
GET/:idJWTEen campus op ID opvragen
POST/JWTServices.EditCampussen maken of bijwerken
DELETE/:idJWTServices.EditEen campus verwijderen

Diensten

Basispad: /attendance/services

Breidt GenericCrudController uit met CRUD routes getById, getAll, post en delete. De getAll (GET /) en search eindpunten worden overschreven met aangepaste implementaties.

MethodePadVerwijzingToestemmingBeschrijving
GET/JWTLijst alle diensten (inclusief campusinfo)
GET/:idJWTEen dienst op ID opvragen
GET/search?campusId=JWTDiensten zoeken op campus-ID
POST/JWTServices.EditDiensten maken of bijwerken
DELETE/:idJWTServices.EditEen dienst verwijderen

Voorbeeld: Diensten zoeken per campus

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

Servicetijden

Basispad: /attendance/servicetimes

Breidt GenericCrudController uit met CRUD routes getById, post en delete. De getAll en search eindpunten zijn aangepaste implementaties.

MethodePadVerwijzingToestemmingBeschrijving
GET/JWTLijst alle servicetijden. Filter per ?serviceId=. Voeg ?include=groups toe om groepsgegevens toe te voegen
GET/:idJWTEen servicetijd op ID opvragen
GET/search?campusId=&serviceId=JWTServicetijden zoeken per campus en dienst
POST/JWTServices.EditServicetijden maken of bijwerken
DELETE/:idJWTServices.EditEen servicetijd verwijderen

Groepenservicetijden

Basispad: /attendance/groupservicetimes

Linkt groepen aan specifieke servicetijden.

MethodePadVerwijzingToestemmingBeschrijving
GET/JWTLijst alle groep-servicetijd associaties. Filter per ?groupId= om associaties met dienstnamen op te vragen
GET/:idJWTEen groep-servicetijd associatie op ID opvragen
POST/JWTServices.EditGroep-servicetijd associaties maken of bijwerken
DELETE/:idJWTServices.EditEen groep-servicetijd associatie verwijderen

Aanwezigheidsverslagen

Basispad: /attendance/attendancerecords

Biedt alleen-lezen aggregate-weergaven van aanwezigheidsgegevens voor rapportage en weergave.

MethodePadVerwijzingToestemmingBeschrijving
GET/JWTAttendance.ViewLaad aanwezigheidsverslagen voor een persoon. Vereist ?personId=
GET/treeJWTLaad de volledige aanwezigheidsboom (campussen, diensten, servicetijden, groepen)
GET/trend?campusId=&serviceId=&serviceTimeId=&groupId=JWTAttendance.View SummaryLaad aanwezigheidstrend gegevens met optionele filters
GET/groups?serviceId=&week=JWTAttendance.ViewLaad groepsaanwezigheid voor een dienst op een bepaalde week
GET/search?campusId=&serviceId=&serviceTimeId=&groupId=&startDate=&endDate=JWTAttendance.ViewZoek aanwezigheidsverslagen met filters (campus, dienst, servicetijd, groep, datumbereik)

Voorbeeld: Aanwezigheidstrend

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

Sessies

Basispad: /attendance/sessions

Breidt GenericCrudController uit met CRUD routes getById en delete. De getAll en save eindpunten zijn aangepaste implementaties die ook groepsleiders toestaan sessies voor hun groepen te beheren.

MethodePadVerwijzingToestemmingBeschrijving
GET/JWTAttendance.View of Group LeaderLijst alle sessies. Filter per ?groupId= (inclusief namen). Groepsleiders kunnen sessies voor hun eigen groepen bekijken
GET/:idJWTAttendance.ViewEen sessie op ID opvragen
POST/JWTAttendance.Edit of Group LeaderSessies maken of bijwerken. Groepsleiders kunnen sessies voor hun eigen groepen opslaan
DELETE/:idJWTAttendance.EditEen sessie verwijderen

Bezoeken

Basispad: /attendance/visits

Beheert individuele bezoekverslagen (een persoon die op een bepaalde datum aanwezig is) en biedt de incheckinworkflow.

MethodePadVerwijzingToestemmingBeschrijving
GET/JWTAttendance.ViewLijst alle bezoeken. Filter per ?personId=
GET/:idJWTAttendance.ViewEen bezoek op ID opvragen
GET/checkin?serviceId=&peopleIds=JWTAttendance.View of Attendance.CheckinIncheckingegevens voor personen bij een dienst laden. Retourneert bezoeken met bezoekssessies van de laatst aangemelde datum
POST/JWTAttendance.EditBezoeken maken of bijwerken
POST/checkin?serviceId=&peopleIds=JWTAttendance.Edit of Attendance.CheckinIncheckingegevens indienen. Maakt/update bezoeken en bezoekssessies, verwijdert verouderde verslagen
DELETE/:idJWTAttendance.EditEen bezoek verwijderen

Voorbeeld: Incheckinflow

Stap 1 -- Bestaande incheckingegevens 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"
}
}
]
}
]

Stap 2 -- Incheckin indienen:

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

Bezoekssessies

Basispad: /attendance/visitsessions

Beheert de associatie tussen bezoeken en sessies (welke specifieke sessie een persoon tijdens een bezoek heeft bijgewoond). Biedt ook een quick log eindpunt en een download/export eindpunt.

MethodePadVerwijzingToestemmingBeschrijving
GET/JWTAttendance.View of Group LeaderLijst bezoekssessies. Filter per ?sessionId=. Groepsleiders kunnen bezoekssessies voor hun eigen groepen bekijken
GET/:idJWTAttendance.ViewEen bezoekssessie op ID opvragen
GET/download/:sessionIdJWTAttendance.ViewDownload aanwezigheid voor een sessie (retourneert persoonssnamen met aanwezig/afwezig status)
POST/JWTAttendance.EditBezoekssessies maken of bijwerken
POST/logJWTAttendance.Edit of Group LeaderSnel aanwezigheid van een persoon in een sessie registreren. Maakt automatisch bezoek aan als nodig. Groepsleiders kunnen aanwezigheid voor hun eigen groepen registreren
DELETE/:idJWTAttendance.EditEen bezoekssessie verwijderen
DELETE/?personId=&sessionId=JWTAttendance.Edit of Group LeaderEen persoon uit een sessie verwijderen. Verwijdert de bezoekssessie en het bovenliggende bezoek als er geen sessies meer zijn. Groepsleiders kunnen aanwezigheid voor hun eigen groepen verwijderen

Voorbeeld: Snel aanwezigheid registreren

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

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

Voorbeeld: Sessie-aanwezigheid downloaden

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": "Jan Jansen",
"status": "aanwezig"
},
{
"id": "",
"personId": "person-002",
"visitId": "",
"sessionDate": "2025-01-19T00:00:00.000Z",
"personName": "Marieke Smit",
"status": "afwezig"
}
]

Streaks

Basispad: /attendance/streaks

Volgt aanwezigheidstreaks voor individuen -- opeenvolgende weken dat een persoon is geweest. Nuttig voor betrokkenheidsstatistieken en gamification.

MethodePadVerwijzingToestemmingBeschrijving
GET/person/:personIdJWTLaad aanwezigheidsstreaks voor een persoon

Gerelateerde pagina's