Vai al contenuto principale

Endpoint Attendance

Il modulo Attendance gestisce le sedi dei campus, i servizi, gli orari dei servizi, le sessioni di presenza, le visite e le sessioni di visita. Fornisce l'infrastruttura per tracciare chi ha partecipato a quale servizio o riunione di gruppo, supporta i flussi di lavoro del check-in e offre report di tendenza e riepilogo delle presenze.

Percorso base: /attendance

Campus

Percorso base: /attendance/campuses

Controller CRUD standard (estende GenericCrudController). Fornisce le route getById, getAll, post e delete tramite la classe base CRUD.

MetodoPercorsoAuthPermessoDescrizione
GET/JWTLista tutti i campus della chiesa
GET/:idJWTOttieni un campus per ID
POST/JWTServices.EditCrea o aggiorna campus
DELETE/:idJWTServices.EditElimina un campus

Servizi

Percorso base: /attendance/services

Estende GenericCrudController con route CRUD getById, getAll, post e delete. Gli endpoint getAll (GET /) e search sono sovrascritti con implementazioni personalizzate.

MetodoPercorsoAuthPermessoDescrizione
GET/JWTLista tutti i servizi (include info campus)
GET/:idJWTOttieni un servizio per ID
GET/search?campusId=JWTCerca servizi per ID campus
POST/JWTServices.EditCrea o aggiorna servizi
DELETE/:idJWTServices.EditElimina un servizio

Esempio: Cerca Servizi per Campus

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

Orari dei Servizi

Percorso base: /attendance/servicetimes

Estende GenericCrudController con route CRUD getById, post e delete. Gli endpoint getAll e search sono implementazioni personalizzate.

MetodoPercorsoAuthPermessoDescrizione
GET/JWTLista tutti gli orari dei servizi. Filtra per ?serviceId=. Aggiungi ?include=groups per appendere i dati dei gruppi
GET/:idJWTOttieni un orario servizio per ID
GET/search?campusId=&serviceId=JWTCerca orari servizio per campus e servizio
POST/JWTServices.EditCrea o aggiorna orari dei servizi
DELETE/:idJWTServices.EditElimina un orario servizio

Orari Servizio dei Gruppi

Percorso base: /attendance/groupservicetimes

Collega i gruppi a specifici orari di servizio.

MetodoPercorsoAuthPermessoDescrizione
GET/JWTLista tutte le associazioni gruppo-orario servizio. Filtra per ?groupId= per ottenere le associazioni con i nomi dei servizi
GET/:idJWTOttieni un'associazione gruppo-orario servizio per ID
POST/JWTServices.EditCrea o aggiorna associazioni gruppo-orario servizio
DELETE/:idJWTServices.EditElimina un'associazione gruppo-orario servizio

Registrazioni Presenze

Percorso base: /attendance/attendancerecords

Fornisce viste aggregate di sola lettura dei dati di presenza per reporting e visualizzazione.

MetodoPercorsoAuthPermessoDescrizione
GET/JWTAttendance.ViewCarica registrazioni presenze per una persona. Richiede ?personId=
GET/treeJWTCarica l'albero completo delle presenze (campus, servizi, orari servizio, gruppi)
GET/trend?campusId=&serviceId=&serviceTimeId=&groupId=JWTAttendance.View SummaryCarica dati di tendenza presenze con filtri opzionali
GET/groups?serviceId=&week=JWTAttendance.ViewCarica presenze dei gruppi per un servizio in una data settimana
GET/search?campusId=&serviceId=&serviceTimeId=&groupId=&startDate=&endDate=JWTAttendance.ViewCerca registrazioni presenze con filtri (campus, servizio, orario servizio, gruppo, intervallo date)

Esempio: Tendenza Presenze

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

Sessioni

Percorso base: /attendance/sessions

Estende GenericCrudController con route CRUD getById e delete. Gli endpoint getAll e save sono implementazioni personalizzate che permettono anche ai leader di gruppo di gestire le sessioni per i propri gruppi.

MetodoPercorsoAuthPermessoDescrizione
GET/JWTAttendance.View o Leader di GruppoLista tutte le sessioni. Filtra per ?groupId= (include nomi). I leader di gruppo possono visualizzare le sessioni dei propri gruppi
GET/:idJWTAttendance.ViewOttieni una sessione per ID
POST/JWTAttendance.Edit o Leader di GruppoCrea o aggiorna sessioni. I leader di gruppo possono salvare sessioni per i propri gruppi
DELETE/:idJWTAttendance.EditElimina una sessione

Visite

Percorso base: /attendance/visits

Gestisce le registrazioni individuali delle visite (una persona che partecipa in una data specifica) e fornisce il flusso di lavoro del check-in.

MetodoPercorsoAuthPermessoDescrizione
GET/JWTAttendance.ViewLista tutte le visite. Filtra per ?personId=
GET/:idJWTAttendance.ViewOttieni una visita per ID
GET/checkin?serviceId=&peopleIds=JWTAttendance.View o Attendance.CheckinCarica dati di check-in per persone a un servizio. Restituisce visite con sessioni di visita dall'ultima data registrata
POST/JWTAttendance.EditCrea o aggiorna visite
POST/checkin?serviceId=&peopleIds=JWTAttendance.Edit o Attendance.CheckinInvia dati di check-in. Crea/aggiorna visite e sessioni di visita, rimuove i record obsoleti
DELETE/:idJWTAttendance.EditElimina una visita

Esempio: Flusso di Check-in

Passo 1 -- Carica dati di check-in esistenti:

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

Passo 2 -- Invia check-in:

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

Sessioni di Visita

Percorso base: /attendance/visitsessions

Gestisce l'associazione tra visite e sessioni (a quale sessione specifica una persona ha partecipato durante una visita). Fornisce anche un endpoint di registrazione rapida e un endpoint di download/esportazione.

MetodoPercorsoAuthPermessoDescrizione
GET/JWTAttendance.View o Leader di GruppoLista sessioni di visita. Filtra per ?sessionId=. I leader di gruppo possono visualizzare le sessioni di visita per i propri gruppi
GET/:idJWTAttendance.ViewOttieni una sessione di visita per ID
GET/download/:sessionIdJWTAttendance.ViewScarica le presenze per una sessione (restituisce nomi persone con stato presente/assente)
POST/JWTAttendance.EditCrea o aggiorna sessioni di visita
POST/logJWTAttendance.Edit o Leader di GruppoRegistra rapidamente la presenza di una persona a una sessione. Crea automaticamente la visita se necessario. I leader di gruppo possono registrare le presenze per i propri gruppi
DELETE/:idJWTAttendance.EditElimina una sessione di visita per ID
DELETE/?personId=&sessionId=JWTAttendance.Edit o Leader di GruppoRimuovi una persona da una sessione. Elimina la sessione di visita e la visita padre se non rimangono sessioni. I leader di gruppo possono rimuovere le presenze per i propri gruppi

Esempio: Registrazione Rapida Presenze

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

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

Esempio: Download Presenze della Sessione

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

Pagine Correlate