Zum Hauptinhalt springen

Membership-Endpunkte

Das Membership-Modul verwaltet Personen, Kirchen, Gruppen, Haushalte, Rollen, Berechtigungen, Formulare und Einstellungen. Es ist das größte Modul und stellt die zentrale Identitäts- und Autorisierungsschicht für alle anderen Module bereit.

Basispfad: /membership

Personen (People)

Basispfad: /membership/people

MethodePfadAuthBerechtigungBeschreibung
GET/JWTPeople.View oder MemberAlle Personen der Kirche auflisten
GET/:idJWTPeople.View oder eigener DatensatzEine Person anhand der ID abrufen (inklusive Formularübermittlungen)
GET/ids?ids=JWTPeople.View oder MemberMehrere Personen anhand kommagetrennter IDs abrufen
GET/basic?ids=JWTGrundlegende Informationen (nur Name) für mehrere Personen abrufen
GET/recentJWTPeople.View oder MemberKürzlich hinzugefügte Personen
GET/search?term=&email=JWTPeople.View oder MemberPersonen nach Name oder E-Mail suchen
GET/search/phone?number=JWTPeople.View oder MemberNach Telefonnummer suchen
GET/search/group?groupId=JWTPeople.View oder MemberPersonen in einer bestimmten Gruppe abrufen
GET/household/:householdIdJWTAlle Personen eines Haushalts abrufen
GET/attendanceJWTPeople.EditTeilnehmer mit Filtern laden (campusId, serviceId, serviceTimeId, groupId, categoryName, startDate, endDate)
GET/timeline?personIds=&groupIds=JWTZeitleistendaten für Personen und Gruppen laden
GET/directory/:idJWTPerson für die Verzeichnisansicht abrufen (berücksichtigt Sichtbarkeitseinstellungen)
GET/claim/:churchIdJWTEinen Personendatensatz für den aktuellen Benutzer bei einer Kirche beanspruchen
POST/JWTPeople.Edit oder EditSelfPersonen erstellen oder aktualisieren (Batch)
POST/searchJWTPeople.View oder MemberPersonen suchen (POST-Variante)
POST/advancedSearchJWTPeople.View oder MemberMehrbedingungssuche (Alter, birthMonth, membershipStatus usw.)
POST/loadOrCreateÖffentlichEine Person anhand der E-Mail finden oder erstellen. Body: { churchId, email, firstName, lastName }
POST/household/:householdIdJWTPeople.EditZuweisungen von Haushaltsmitgliedern aktualisieren
POST/public/emailÖffentlichEine E-Mail an eine Person senden. Body: { churchId, personId, subject, body, appName }
POST/apiEmailsInternE-Mail-Adressen von Personen anhand von IDs laden (Server-zu-Server, erfordert jwtSecret)
DELETE/:idJWTPeople.EditEine Person löschen

Beispiel: Personen suchen

GET /membership/people/search?term=John
Authorization: Bearer <token>
[
{
"id": "abc-123",
"name": { "first": "John", "last": "Smith" },
"contactInfo": { "email": "john@example.com" },
"membershipStatus": "Member"
}
]

Beispiel: Eine Person erstellen

POST /membership/people
Authorization: Bearer <token>

[{ "firstName": "Jane", "lastName": "Doe", "contactInfo": { "email": "jane@example.com" } }]

Benutzer (Users)

Basispfad: /membership/users

Siehe Authentifizierung & Berechtigungen für Endpunkte zu Anmeldung, Registrierung und Passwortverwaltung.

MethodePfadAuthBerechtigungBeschreibung
POST/loginÖffentlichAnmelden (E-Mail/Passwort, JWT-Refresh oder authGuid)
POST/registerÖffentlichEinen neuen Benutzer registrieren
POST/forgotÖffentlichE-Mail zum Zurücksetzen des Passworts senden
POST/setPasswordGuidÖffentlichPasswort mittels Auth-GUID aus dem E-Mail-Link festlegen
POST/verifyCredentialsÖffentlichE-Mail/Passwort verifizieren und zugehörige Kirchen zurückgeben
POST/loadOrCreateJWTEinen Benutzer anhand von E-Mail/userId finden oder erstellen
POST/setDisplayNameJWTVor- und Nachnamen des Benutzers aktualisieren
POST/updateEmailJWTE-Mail-Adresse des Benutzers ändern
POST/updatePasswordJWTPasswort des Benutzers ändern (mind. 6 Zeichen)
POST/updateOptedOutJWTOpt-out-Status einer Person festlegen
GET/search?term=JWTServer.AdminAlle Benutzer nach Name/E-Mail durchsuchen
DELETE/JWTDas aktuelle Benutzerkonto löschen

Kirchen (Churches)

Basispfad: /membership/churches

MethodePfadAuthBerechtigungBeschreibung
GET/JWTAlle Kirchen des aktuellen Benutzers laden
GET/:idJWTKirche anhand der ID abrufen
GET/:id/getDomainAdminJWTDen Domain-Administrator einer Kirche abrufen
GET/:id/impersonateJWTServer.AdminEine Kirche imitieren (nur Server-Administratoren)
GET/all?term=JWTServer.AdminAlle Kirchen durchsuchen (Administration)
GET/search/?name=ÖffentlichKirchen nach Namen suchen
GET/lookup/?subDomain=&id=ÖffentlichEine Kirche anhand von Subdomain oder ID nachschlagen
POST/JWTSettings.EditKirchendetails aktualisieren
POST/addJWTEine neue Kirche registrieren. Erforderliche Felder: name, address1, city, state, zip, country
POST/searchÖffentlichKirchen nach Namen suchen (POST-Variante)
POST/selectJWTZu einer Kirche wechseln/sie auswählen. Body: { churchId } oder { subDomain }
POST/:id/archiveJWTServer.AdminEine Kirche archivieren oder die Archivierung aufheben
POST/byIdsÖffentlichMehrere Kirchen anhand von IDs laden
DELETE/deleteAbandonedJWTServer.AdminSeit 7+ Tagen verwaiste Kirchen löschen

Gruppen (Groups)

Basispfad: /membership/groups

Erweitert Standard-CRUD (GET /, GET /:id aus der Basisklasse).

MethodePfadAuthBerechtigungBeschreibung
GET/JWTAlle Gruppen auflisten
GET/:idJWTGruppe anhand der ID abrufen
GET/search?campusId=&serviceId=&serviceTimeId=JWTGruppen nach Gottesdienstfiltern suchen
GET/myJWTGruppen des aktuellen Benutzers abrufen
GET/my/:tagJWTGruppen des aktuellen Benutzers, gefiltert nach Tag
GET/tag/:tagJWTAlle Gruppen mit einem bestimmten Tag abrufen
GET/public/:churchId/:idÖffentlichEine öffentliche Gruppe anhand von Kirche und ID abrufen
GET/public/:churchId/tag/:tagÖffentlichÖffentliche Gruppen nach Tag abrufen
GET/public/:churchId/label?label=ÖffentlichÖffentliche Gruppen nach Label abrufen
GET/public/:churchId/slug/:slugÖffentlichEine öffentliche Gruppe anhand des Slugs abrufen
POST/JWTGroups.EditGruppen erstellen oder aktualisieren (generiert Slug automatisch)
DELETE/:idJWTGroups.EditEine Gruppe löschen (löscht bei Ministry-Gruppen auch untergeordnete Teams)

Gruppenmitglieder (Group Members)

Basispfad: /membership/groupmembers

Erweitert Standard-CRUD (GET /:id, DELETE /:id aus der Basisklasse).

MethodePfadAuthBerechtigungBeschreibung
GET/:idJWTGroupMembers.ViewGruppenmitglied anhand der ID abrufen
GET/JWTGroupMembers.View*Gruppenmitglieder auflisten. Filterbar über ?groupId=, ?groupIds= oder ?personId=. *Auch erlaubt, wenn der Benutzer Mitglied der Gruppe ist oder nach der eigenen personId sucht
GET/myJWTGruppenmitgliedschaften des aktuellen Benutzers abrufen
GET/basic/:groupIdJWTEinfache Mitgliederliste für eine Gruppe abrufen
GET/public/leaders/:churchId/:groupIdÖffentlichGruppenleiter abrufen (öffentlich)
GET/public/:churchId/:groupIdÖffentlichÖffentliche Mitgliederliste einer Gruppe abrufen (minimale Felder: personId, displayName, leader, Foto). Nur, wenn die Gruppe dies über publicRoster zulässt; treibt das staffGrid-Element des Website-Builders an
POST/JWTGroupMembers.EditGruppenmitglieder hinzufügen oder aktualisieren
DELETE/:idJWTGroupMembers.ViewEin Gruppenmitglied entfernen

Haushalte (Households)

Basispfad: /membership/households

Standard-CRUD-Controller.

MethodePfadAuthBerechtigungBeschreibung
GET/JWTAlle Haushalte auflisten
GET/:idJWTHaushalt anhand der ID abrufen
POST/JWTPeople.EditHaushalte erstellen oder aktualisieren
DELETE/:idJWTPeople.EditEinen Haushalt löschen

Rollen (Roles)

Basispfad: /membership/roles

MethodePfadAuthBerechtigungBeschreibung
GET/:idJWTRoles.ViewRolle anhand der ID abrufen
GET/church/:churchIdJWTRoles.ViewAlle Rollen einer Kirche abrufen
POST/JWTRoles.EditRollen erstellen oder aktualisieren
DELETE/:idJWTRoles.EditEine Rolle löschen (entfernt auch deren Berechtigungen und Mitglieder)

Rollenmitglieder (Role Members)

Basispfad: /membership/rolemembers

MethodePfadAuthBerechtigungBeschreibung
GET/roles/:idJWTRoles.ViewMitglieder einer Rolle abrufen. Mit ?include=users werden Benutzerdetails eingeschlossen
POST/JWTRoles.EditMitglieder zu einer Rolle hinzufügen (erstellt einen Benutzer, falls die E-Mail nicht existiert)
DELETE/:idJWTRoles.ViewEin Rollenmitglied entfernen
DELETE/self/:churchId/:userIdJWTSich selbst aus einer Kirche entfernen

Rollenberechtigungen (Role Permissions)

Basispfad: /membership/rolepermissions

MethodePfadAuthBerechtigungBeschreibung
GET/roles/:idJWTRoles.ViewBerechtigungen einer Rolle abrufen (verwenden Sie null als ID für die Rolle "Everyone")
POST/JWTRoles.EditRollenberechtigungen erstellen oder aktualisieren
DELETE/:idJWTRoles.EditEine Rollenberechtigung löschen

Berechtigungen (Permissions)

Basispfad: /membership/permissions

MethodePfadAuthBerechtigungBeschreibung
GET/JWTDie vollständige Liste der verfügbaren Berechtigungen abrufen

Formulare (Forms)

Basispfad: /membership/forms

MethodePfadAuthBerechtigungBeschreibung
GET/JWTForms.Admin oder Forms.EditAlle Formulare auflisten (Administratoren sehen alle; Bearbeiter sehen zugewiesene sowie nicht-mitgliederbezogene Formulare)
GET/:idJWTFormularzugriffEin Formular anhand der ID abrufen
GET/archivedJWTForms.Admin oder Forms.EditArchivierte Formulare auflisten
GET/standalone/:id?churchId=JWTEin eigenständiges Formular abrufen (eingeschränkte Formulare erfordern Authentifizierung)
POST/JWTForms.Admin oder Forms.EditFormulare erstellen oder aktualisieren
DELETE/:idJWTFormularzugriffEin Formular löschen

Formularübermittlungen (Form Submissions)

Basispfad: /membership/formsubmissions

MethodePfadAuthBerechtigungBeschreibung
GET/JWTForms.Admin oder Forms.EditÜbermittlungen auflisten. Filterbar über ?personId= oder ?formId=
GET/:idJWTForms.Admin oder Forms.EditÜbermittlung anhand der ID abrufen. Mit ?include=form,questions,answers
GET/formId/:formIdJWTFormularzugriffAlle Übermittlungen für ein Formular abrufen (inklusive Formular, Fragen, Antworten)
POST/JWTFormularantworten übermitteln (behandelt eingeschränkte/uneingeschränkte Formulare, sendet E-Mail-Benachrichtigungen). Wenn das Formular autoCreatePerson gesetzt hat, wird anhand der E-Mail eine Gast-Person gefunden oder erstellt und mit der Übermittlung verknüpft; sind followUpSubject/followUpBody gesetzt, wird eine vorlagenbasierte Follow-up-E-Mail an den Absender gesendet
DELETE/:idJWTForms.Admin oder Forms.EditEine Übermittlung und ihre Antworten löschen

Fragen (Questions)

Basispfad: /membership/questions

MethodePfadAuthBerechtigungBeschreibung
GET/JWTFormularzugriffFragen eines Formulars auflisten. Erfordert ?formId=
GET/:idJWTFormularzugriffEine Frage anhand der ID abrufen
GET/unrestricted?formId=JWTFragen für ein uneingeschränktes Formular abrufen
GET/sort/:id/upJWTEine Frage in der Sortierreihenfolge nach oben verschieben
GET/sort/:id/downJWTEine Frage in der Sortierreihenfolge nach unten verschieben
POST/JWTFormularzugriffFragen erstellen oder aktualisieren (weist die Sortierreihenfolge automatisch zu)
DELETE/:id?formId=JWTFormularzugriffEine Frage löschen

Antworten (Answers)

Basispfad: /membership/answers

MethodePfadAuthBerechtigungBeschreibung
GET/JWTForms.Admin oder Forms.EditAntworten auflisten. Filterbar über ?formSubmissionId=
POST/JWTForms.Admin oder Forms.EditAntworten erstellen oder aktualisieren

Mitgliederberechtigungen (Member Permissions)

Basispfad: /membership/memberpermissions

Steuert den Zugriff einzelner Mitglieder auf bestimmte Formulare.

MethodePfadAuthBerechtigungBeschreibung
GET/:idJWTFormularzugriffEine Mitgliederberechtigung anhand der ID abrufen
GET/member/:idJWTFormularzugriffAlle Formularberechtigungen eines Mitglieds abrufen
GET/form/:idJWTFormularzugriffAlle Mitgliederberechtigungen eines Formulars abrufen
GET/form/:id/myJWTFormularzugriffBerechtigung des aktuellen Benutzers für ein Formular abrufen
POST/JWTFormularzugriffMitgliederberechtigungen erstellen oder aktualisieren
DELETE/:id?formId=JWTFormularzugriffEine Mitgliederberechtigung löschen
DELETE/member/:id?formId=JWTFormularzugriffAlle Berechtigungen eines Mitglieds für ein Formular löschen

Einstellungen (Settings)

Basispfad: /membership/settings

MethodePfadAuthBerechtigungBeschreibung
GET/JWTSettings.EditAlle Einstellungen der Kirche abrufen
GET/public/:churchIdÖffentlichÖffentliche Einstellungen einer Kirche abrufen
POST/JWTSettings.EditEinstellungen speichern (unterstützt Base64-Bild-Upload)

Domains

Basispfad: /membership/domains

Erweitert Standard-CRUD (GET /:id, GET /, DELETE /:id aus der Basisklasse).

MethodePfadAuthBerechtigungBeschreibung
GET/JWTAlle Domains auflisten
GET/:idJWTDomain anhand der ID abrufen
GET/lookup/:domainNameJWTEine Domain anhand des Namens nachschlagen
GET/public/lookup/:domainNameÖffentlichÖffentliche Domain-Suche anhand des Namens
GET/health/checkÖffentlichGesundheitsprüfung für ungeprüfte Domains ausführen
POST/JWTSettings.EditDomains erstellen oder aktualisieren (löst eine Caddy-Aktualisierung aus)
DELETE/:idJWTSettings.EditEine Domain löschen

Benutzer-Kirche (User Church)

Basispfad: /membership/userchurch

Verwaltet die Zuordnung zwischen Benutzern und Kirchen.

MethodePfadAuthBerechtigungBeschreibung
GET/userid/:userIdJWTBenutzer-Kirche-Datensatz anhand der Benutzer-ID abrufen
GET/personid/:personIdJWTE-Mail-Adresse des mit einer Person verknüpften Benutzers abrufen
GET/user/:userIdJWTServer.AdminAlle Kirchen eines Benutzers laden
POST/JWTEine Benutzer-Kirche-Zuordnung erstellen
PATCH/:userIdJWTLetzten Zugriffszeitpunkt aktualisieren und Zugriff protokollieren
DELETE/record/:userId/:churchId/:personIdJWTEinen Benutzer-Kirche-Datensatz löschen

Sichtbarkeitseinstellungen (Visibility Preferences)

Basispfad: /membership/visibilityPreferences

MethodePfadAuthBerechtigungBeschreibung
GET/myJWTSichtbarkeitseinstellungen des aktuellen Benutzers abrufen
POST/JWTSichtbarkeitseinstellungen speichern (Sichtbarkeit von Adresse, Telefon, E-Mail)

Abfrage (Query)

Basispfad: /membership/query

MethodePfadAuthBerechtigungBeschreibung
POST/membersJWTNatürlichsprachliche Mitgliedersuche mittels KI. Body: { text, subDomain, siteUrl }

Client-Fehler (Client Errors)

Basispfad: /membership/clientErrors

MethodePfadAuthBerechtigungBeschreibung
POST/JWTEinen clientseitigen Fehler protokollieren

Verwandte Seiten