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/JWT—Lijst alle campussen voor de kerk
GET/:idJWT—Een 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/JWT—Lijst alle diensten (inclusief campusinfo)
GET/:idJWT—Een dienst op ID opvragen
GET/search?campusId=JWT—Diensten 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/JWT—Lijst alle servicetijden. Filter per ?serviceId=. Voeg ?include=groups toe om groepsgegevens toe te voegen
GET/:idJWT—Een servicetijd op ID opvragen
GET/search?campusId=&serviceId=JWT—Servicetijden 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/JWT—Lijst alle groep-servicetijd associaties. Filter per ?groupId= om associaties met dienstnamen op te vragen
GET/:idJWT—Een 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/treeJWT—Laad 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/:personIdJWT—Laad aanwezigheidsstreaks voor een persoon

Gerelateerde pagina's​