Przejdź do zawartości głównej

Punkty końcowe modułu Membership

Moduł Membership zarządza osobami, kościołami, grupami, gospodarstwami domowymi, rolami, uprawnieniami, formularzami i ustawieniami. Jest największym modułem i zapewnia podstawową warstwę tożsamości i autoryzacji dla wszystkich pozostałych modułów.

Ścieżka bazowa: /membership

Osoby​

Ścieżka bazowa: /membership/people

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWTPeople.View lub MemberLista wszystkich osób w kościele
GET/:idJWTPeople.View lub własny rekordPobranie osoby po ID (zawiera zgłoszenia formularzy)
GET/ids?ids=JWTPeople.View, Member lub People.ViewNamesPobranie wielu osób po identyfikatorach oddzielonych przecinkami. Wywołujący z People.ViewNames bez People.View otrzymują model podstawowy, a osoby, które zrezygnowały z widoczności, są pomijane (poza wywołującym)
GET/basic?ids=JWT—Pobranie podstawowych informacji (samo imię i nazwisko) dla wielu osób
GET/names?ids=JWTDowolne uprawnienie kościelne[{ id, name: { display, first, last }, photo }], posortowane według nazwiska, a następnie imienia, dla identyfikatorów oddzielonych przecinkami, do których wywołujący ma dostęp. Dzięki temu role bez People.View (darowizny, frekwencja) mogą wyświetlać nazwy osób. Bez wyszukiwania i bez filtrowania katalogu
POST/namesJWTDowolne uprawnienie kościelneTak samo jak GET /names. Treść: { peopleIds } (lub { ids })
GET/recentJWTPeople.View, Member lub People.ViewNamesOstatnio dodane osoby. Wywołujący z People.ViewNames bez People.View (nawet członkowie z dostępem do katalogu) otrzymują model podstawowy (id, name.display, photo, membershipStatus), a osoby, które zrezygnowały z widoczności, są pomijane
GET/guest-register/options?churchId=Publiczne—Lista kontrolna rejestracji gościa przez kod QR: zwraca { email, phone, address, birthDate, gender, maritalStatus, grade, comments }, gdzie każda wartość to "off", "optional" lub "required" (odczytywane z publicznego ustawienia guestRegistrationFields; brakujące lub błędne wartości przechodzą na domyślne: e-mail i telefon opcjonalne, reszta wyłączona). Wymaga enableQRGuestRegistration, chyba że żądanie zawiera pasujący token witryny lub kościoła; ograniczenie liczby żądań (429)
GET/search?term=&email=JWTPeople.View, Member lub People.ViewNamesWyszukiwanie osób po nazwisku lub e-mailu (do 100, posortowane według nazwiska, a następnie imienia). Wywołujący z People.ViewNames bez People.View (nawet członkowie z dostępem do katalogu) otrzymują wyniki wyszukiwania po nazwisku w modelu podstawowym; wyszukiwanie po email zwraca []
GET/search/phone?number=JWTPeople.View lub MemberWyszukiwanie po numerze telefonu
GET/search/group?groupId=JWTPeople.View lub MemberPobranie osób w określonej grupie
GET/household/:householdIdJWT—Pobranie wszystkich osób w gospodarstwie domowym
GET/attendanceJWTPeople.EditWczytanie uczestników z filtrami (campusId, serviceId, serviceTimeId, groupId, categoryName, startDate, endDate)
GET/timeline?personIds=&groupIds=JWT—Wczytanie danych osi czasu dla osób i grup
GET/directory/:idJWT—Pobranie osoby do widoku katalogu (uwzględnia preferencje widoczności)
GET/claim/:churchIdJWT—Przypisanie rekordu osoby do bieżącego użytkownika w kościele
POST/JWTPeople.Edit lub EditSelfTworzenie lub aktualizacja osób (wsadowo)
POST/searchJWTPeople.View, Member lub People.ViewNamesWyszukiwanie osób (wariant POST). Treść: { term } lub { email }; obowiązują te same zasady dotyczące samych nazw co w GET /search
POST/advancedSearchJWTPeople.View lub MemberWyszukiwanie z wieloma warunkami (wiek, birthMonth, membershipStatus itd.). Treść jest tablicą warunków; pusta treść oznacza brak warunków, a każda inna treść, która nie jest tablicą, zwraca 400
POST/loadOrCreatePubliczne—Znalezienie lub utworzenie osoby na podstawie e-maila. Treść: { churchId, email, firstName, lastName }
POST/guest-registerPubliczne—Rejestracja gościa przez kod QR. Treść: { churchId, members: [{ firstName, lastName, email?, phone?, birthDate?, gender?, grade? }], address?, maritalStatus?, comments? } (1–10 członków; email/phone/maritalStatus dotyczą tylko pierwszego członka). Pola wyłączone przez kościół są pomijane; brakujące wymagane lub nieprawidłowe wartości zwracają 400. Najpierw ponownie wykorzystywane są istniejące osoby: członek pasuje, gdy dokładnie jedna nieusunięta osoba ma to samo imię (bez rozróżniania wielkości liter) oraz ten sam e-mail lub te same cyfry telefonu (domowy, służbowy lub komórkowy); członek bez e-maila i telefonu pasuje po imieniu w dopasowanym gospodarstwie domowym. Dopasowane osoby nigdy nie są edytowane. Niedopasowani członkowie dołączają do dopasowanego gospodarstwa domowego lub, jeśli go nie ma, tworzą nowe (nazwane od nazwiska pierwszego członka), ze statusem membershipStatus: "Visitor" i wspólnym address. Zapisuje comments jako notatkę przy pierwszym członku, dodaje wszystkich do prywatnej grupy guestRegistrationGroupId, jeśli jest ustawiona, i — gdy guestRegistrationRecordAttendance ma wartość "true" — rejestruje frekwencję na zaplanowanych terminach nabożeństw tej grupy, których okno zameldowania jest obecnie otwarte. Zwraca { householdId, people: [{ id, name }] }, powtarzając przesłane nazwy zamiast zapisanych. Te same zasady dotyczące zgody/tokenu i ograniczenia liczby żądań jak w wywołaniu options
POST/household/:householdIdJWTPeople.EditAktualizacja przypisań członków gospodarstwa domowego
POST/public/emailPubliczne—Wysłanie e-maila do osoby. Treść: { churchId, personId, subject, body, appName }
POST/apiEmailsWewnętrzne—Wczytanie adresów e-mail osób po identyfikatorach (komunikacja serwer-serwer, wymaga jwtSecret)
DELETE/:idJWTPeople.EditUsunięcie osoby

Przykład: wyszukiwanie osób​

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

Przykład: utworzenie osoby​

POST /membership/people
Authorization: Bearer <token>

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

Użytkownicy​

Ścieżka bazowa: /membership/users

Informacje o punktach końcowych logowania, rejestracji i zarządzania hasłami znajdziesz w sekcji Uwierzytelnianie i uprawnienia.

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
POST/loginPubliczne—Logowanie (e-mail/hasło, odświeżenie JWT lub authGuid)
POST/registerPubliczne—Rejestracja nowego użytkownika
POST/forgotPubliczne—Wysłanie e-maila z resetem hasła
POST/setPasswordGuidPubliczne—Ustawienie hasła za pomocą GUID uwierzytelnienia z linku w e-mailu
POST/verifyCredentialsPubliczne—Weryfikacja e-maila/hasła i zwrócenie powiązanych kościołów
POST/loadOrCreateJWT—Znalezienie lub utworzenie użytkownika na podstawie e-maila/userId
POST/setDisplayNameJWT—Aktualizacja imienia i nazwiska użytkownika
POST/updateEmailJWT—Zmiana adresu e-mail użytkownika
POST/updatePasswordJWT—Zmiana hasła użytkownika (min. 6 znaków)
POST/updateOptedOutJWT—Ustawienie statusu rezygnacji z widoczności dla osoby
POST/sendInviteEmailJWTPeople.EditWysłanie zaproszenia e-mailem do osoby w tym kościele (email, personName, contextName). Przycisk ma napis Sign Up dla osoby bez konta, a Log In dla istniejącego użytkownika. Użytkownik, który nigdy się nie logował, zamiast tego otrzymuje link Set Your Password, który wygasa po 7 dniach. Jest to stały szablon, więc nie wlicza się do dziennego limitu e-maili kościoła
GET/search?term=JWTServer.AdminWyszukiwanie wszystkich użytkowników po nazwisku/e-mailu
DELETE/JWT—Usunięcie konta bieżącego użytkownika

Kościoły​

Ścieżka bazowa: /membership/churches

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWT—Wczytanie wszystkich kościołów bieżącego użytkownika
GET/:idJWT—Pobranie kościoła po ID
GET/:id/getDomainAdminJWT—Pobranie użytkownika-administratora domeny dla kościoła
GET/:id/impersonateJWTServer.AdminPodszywanie się pod kościół (tylko administrator serwera)
GET/all?term=JWTServer.AdminWyszukiwanie wszystkich kościołów (administrator)
GET/search/?name=Publiczne—Wyszukiwanie kościołów po nazwie
GET/lookup/?subDomain=&id=Publiczne—Wyszukanie kościoła po subdomenie lub ID
POST/JWTSettings.EditAktualizacja danych kościoła
POST/addJWT—Rejestracja nowego kościoła. Wymagane pola: name, address1, city, state, zip, country
POST/searchPubliczne—Wyszukiwanie kościołów po nazwie (wariant POST)
POST/selectJWT—Wybór/przełączenie na kościół. Treść: { churchId } lub { subDomain }
POST/:id/archiveJWTServer.AdminArchiwizacja lub przywrócenie kościoła z archiwum
POST/byIdsPubliczne—Wczytanie wielu kościołów po identyfikatorach
DELETE/deleteAbandonedJWTServer.AdminUsunięcie kościołów nieaktywnych przez 7 i więcej dni

Grupy​

Ścieżka bazowa: /membership/groups

Rozszerza standardowe operacje CRUD (GET /, GET /:id z klasy bazowej).

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWT—Lista wszystkich grup
GET/:idJWT—Pobranie grupy po ID
GET/search?campusId=&serviceId=&serviceTimeId=JWT—Wyszukiwanie grup według filtrów nabożeństw
GET/myJWT—Pobranie grup bieżącego użytkownika
GET/my/:tagJWT—Pobranie grup bieżącego użytkownika filtrowanych według tagu
GET/tag/:tagJWT—Pobranie wszystkich grup z określonym tagiem
GET/public/:churchId/:idPubliczne—Pobranie publicznej grupy po kościele i ID
GET/public/:churchId/tag/:tagPubliczne—Pobranie publicznych grup po tagu
GET/public/:churchId/label?label=Publiczne—Pobranie publicznych grup po etykiecie
GET/public/:churchId/slug/:slugPubliczne—Pobranie publicznej grupy po slugu
POST/JWTGroups.EditTworzenie lub aktualizacja grup (automatycznie generuje slug)
DELETE/:idJWTGroups.EditUsunięcie grupy (dla grup służbowych usuwa także zespoły podrzędne)

Członkowie grup​

Ścieżka bazowa: /membership/groupmembers

Rozszerza standardowe operacje CRUD (GET /:id, DELETE /:id z klasy bazowej).

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/:idJWTGroupMembers.ViewPobranie członka grupy po ID
GET/JWTGroupMembers.View*Lista członków grup. Filtrowanie przez ?groupId=, ?groupIds= lub ?personId=. *Dozwolone także, gdy użytkownik należy do grupy lub zapytuje o własny personId, oraz dla ?groupId= dowolnej niepoufnej grupy, gdy użytkownik ma Attendance.View lub Attendance.Edit (dla nich uwzględniani są członkowie poniżej 13 roku życia)
GET/myJWT—Pobranie członkostw w grupach bieżącego użytkownika
GET/basic/:groupIdJWT—Pobranie podstawowej listy członków grupy
GET/public/leaders/:churchId/:groupIdPubliczne—Pobranie liderów grupy (publiczne)
GET/public/:churchId/:groupIdPubliczne—Pobranie publicznego składu grupy (minimalne pola: personId, displayName, leader, zdjęcie). Tylko gdy grupa włączy opcję publicRoster; zasila element staffGrid kreatora stron
POST/JWTGroupMembers.EditDodanie lub aktualizacja członków grupy
DELETE/:idJWTGroupMembers.ViewUsunięcie członka grupy

Gospodarstwa domowe​

Ścieżka bazowa: /membership/households

Standardowy kontroler CRUD.

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWT—Lista wszystkich gospodarstw domowych
GET/:idJWT—Pobranie gospodarstwa domowego po ID
POST/JWTPeople.EditTworzenie lub aktualizacja gospodarstw domowych
DELETE/:idJWTPeople.EditUsunięcie gospodarstwa domowego

Role​

Ścieżka bazowa: /membership/roles

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/:idJWTRoles.ViewPobranie roli po ID
GET/church/:churchIdJWTRoles.ViewPobranie wszystkich ról kościoła. Każda rola zawiera memberCount, czyli liczbę różnych użytkowników w niej
POST/JWTRoles.EditTworzenie lub aktualizacja ról
DELETE/:idJWTRoles.EditUsunięcie roli (usuwa także jej uprawnienia i członków)

Członkowie ról​

Ścieżka bazowa: /membership/rolemembers

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/roles/:idJWTRoles.ViewPobranie członków roli. Dodaj ?include=users, aby uwzględnić dane użytkowników
POST/JWTRoles.EditDodanie członków do roli (tworzy użytkownika, jeśli e-mail nie istnieje)
DELETE/:idJWTRoles.ViewUsunięcie członka roli
DELETE/self/:churchId/:userIdJWT—Usunięcie siebie z kościoła

Uprawnienia ról​

Ścieżka bazowa: /membership/rolepermissions

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/roles/:idJWTRoles.ViewPobranie uprawnień roli (użyj null jako ID dla roli "Everyone")
POST/JWTRoles.EditTworzenie lub aktualizacja uprawnień roli
DELETE/:idJWTRoles.EditUsunięcie uprawnienia roli

Uprawnienia​

Ścieżka bazowa: /membership/permissions

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWT—Pobranie pełnej listy dostępnych uprawnień

Każdy wpis zawiera apiName, section (typ treści), action oraz etykiety displaySection i displayAction, które wyświetla edytor ról w B1Admin. Ostatnio dodane: MembershipApi / People / View Names (View People Names Only, w sekcji People and Groups) oraz GivingApi / Donations / Enter (Enter Donations, w sekcji Donations; zob. Partie darowizn).

Formularze​

Ścieżka bazowa: /membership/forms

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWTForms.Admin lub Forms.EditLista wszystkich formularzy (administrator widzi wszystkie; edytorzy widzą przypisane oraz formularze spoza członkostwa)
GET/:idJWTDostęp do formularzaPobranie formularza po ID
GET/archivedJWTForms.Admin lub Forms.EditLista zarchiwizowanych formularzy
GET/group/:groupIdJWTCzłonek grupy, lider grupy lub Forms.AdminSamodzielne formularze powiązane z grupą (forms.groupId), bez zarchiwizowanych, posortowane według nazwy. Zwraca id, name, description oraz open (w oknie dostępności). Członkowie widzą tylko otwarte formularze; liderzy i administratorzy formularzy widzą także zamknięte. Zasila powiązane formularze na stronie grupy
GET/standalone/:id?churchId=JWT—Pobranie samodzielnego formularza (formularze z ograniczeniami wymagają uwierzytelnienia)
POST/JWTForms.Admin lub Forms.EditTworzenie lub aktualizacja formularzy. Samodzielne formularze przyjmują opcjonalne photoUrl (zdjęcie nagłówka wyświetlane nad formularzem) oraz groupId (powiązana grupa)
DELETE/:idJWTDostęp do formularzaUsunięcie formularza

Zgłoszenia formularzy​

Ścieżka bazowa: /membership/formsubmissions

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWTForms.Admin lub Forms.EditLista zgłoszeń. Filtrowanie przez ?personId= lub ?formId=
GET/my?include=questions,answersJWT—Zakres własny: do 50 zgłoszeń samodzielnych formularzy (nie formularzy osób), które zalogowany członek przesłał lub które są powiązane z jego osobą (contentType person, contentId = jego ID osoby — na przykład po zmianie osoby przez administratora), od najnowszego, każde z form.name. include dołącza pytania formularza i odpowiedzi ze zgłoszenia. Zwraca 401, jeśli użytkownik nie jest powiązany z osobą. Zasila sekcję My Forms na stronie B1 Me
GET/group/:groupIdJWTLider grupyOdpowiedzi dla liderów grupy: jeden wpis dla każdego powiązanego formularza i każdego wydarzenia grupy z formularzem zapisu, z polami form, event (id, title, start; tylko dla wpisów wydarzeń), questions oraz submissions (z answers i personName, null dla anonimowych)
GET/:idJWTForms.Admin, Forms.Edit lub dostęp do podgląduPobranie zgłoszenia po ID. Dodaj ?include=form,questions,answers. Liderzy grupy powiązanej z formularzem oraz liderzy grupy, do której należy zapis na wydarzenie, mogą je także odczytać
GET/formId/:formIdJWTDostęp do formularza (podgląd)Pobranie wszystkich zgłoszeń formularza (zawiera form, questions, answers). Liderzy grupy powiązanej z formularzem mają dostęp do podglądu
POST/JWT—Przesłanie odpowiedzi na formularz (obsługuje formularze z ograniczeniami i bez, wysyła powiadomienia e-mail). Gdy formularz ma autoCreatePerson, znajduje lub tworzy osobę-gościa na podstawie e-maila i łączy ją ze zgłoszeniem; gdy formularz ma także groupId, dodaje tę osobę do grupy; gdy ustawiono followUpSubject/followUpBody, wysyła do zgłaszającego e-mail uzupełniający na podstawie szablonu. Chyba że wywołujący może zarządzać formularzem, submittedBy jest zawsze ustawiane na osobę zalogowanego członka (lub pozostaje puste dla zgłoszeń anonimowych)
DELETE/:idJWTForms.Admin lub Forms.EditUsunięcie zgłoszenia wraz z jego odpowiedziami

Pytania​

Ścieżka bazowa: /membership/questions

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWTDostęp do formularzaLista pytań formularza. Wymaga ?formId=
GET/:idJWTDostęp do formularzaPobranie pytania po ID
GET/unrestricted?formId=JWT—Pobranie pytań formularza bez ograniczeń
GET/sort/:id/upJWT—Przesunięcie pytania wyżej w kolejności
GET/sort/:id/downJWT—Przesunięcie pytania niżej w kolejności
POST/JWTDostęp do formularzaTworzenie lub aktualizacja pytań (automatycznie przypisuje kolejność)
DELETE/:id?formId=JWTDostęp do formularzaUsunięcie pytania

Odpowiedzi​

Ścieżka bazowa: /membership/answers

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWTForms.Admin lub Forms.EditLista odpowiedzi. Filtrowanie przez ?formSubmissionId=
POST/JWTForms.Admin lub Forms.EditTworzenie lub aktualizacja odpowiedzi

Uprawnienia członków​

Ścieżka bazowa: /membership/memberpermissions

Kontroluje dostęp poszczególnych członków do konkretnych formularzy.

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/:idJWTDostęp do formularzaPobranie uprawnienia członka po ID
GET/member/:idJWTDostęp do formularzaPobranie wszystkich uprawnień do formularzy dla członka
GET/form/:idJWTDostęp do formularzaPobranie wszystkich uprawnień członków dla formularza
GET/form/:id/myJWTDostęp do formularzaPobranie uprawnienia bieżącego użytkownika do formularza
POST/JWTDostęp do formularzaTworzenie lub aktualizacja uprawnień członka
DELETE/:id?formId=JWTDostęp do formularzaUsunięcie uprawnienia członka
DELETE/member/:id?formId=JWTDostęp do formularzaUsunięcie wszystkich uprawnień członka do formularza

Ustawienia​

Ścieżka bazowa: /membership/settings

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWTSettings.EditPobranie wszystkich ustawień kościoła
GET/public/:churchIdPubliczne—Pobranie publicznych ustawień kościoła
POST/JWTSettings.EditZapisanie ustawień (obsługuje przesyłanie obrazów w base64)

Domeny​

Ścieżka bazowa: /membership/domains

Rozszerza standardowe operacje CRUD (GET /:id, GET /, DELETE /:id z klasy bazowej).

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/JWT—Lista wszystkich domen
GET/:idJWT—Pobranie domeny po ID
GET/lookup/:domainNameJWT—Wyszukanie domeny po nazwie
GET/public/lookup/:domainNamePubliczne—Publiczne wyszukiwanie domeny po nazwie
GET/health/checkPubliczne—Uruchomienie kontroli stanu dla niesprawdzonych domen
POST/JWTSettings.EditTworzenie lub aktualizacja domen (wyzwala aktualizację Caddy)
DELETE/:idJWTSettings.EditUsunięcie domeny

Powiązanie użytkownika z kościołem​

Ścieżka bazowa: /membership/userchurch

Zarządza powiązaniem między użytkownikami a kościołami.

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/userid/:userIdJWT—Pobranie rekordu użytkownik-kościół po ID użytkownika
GET/personid/:personIdJWT—Pobranie e-maila powiązanego użytkownika osoby
GET/user/:userIdJWTServer.AdminWczytanie wszystkich kościołów użytkownika
POST/JWT—Utworzenie powiązania użytkownik-kościół
PATCH/:userIdJWT—Aktualizacja czasu ostatniego dostępu i zapis dostępu do dziennika
DELETE/record/:userId/:churchId/:personIdJWT—Usunięcie rekordu użytkownik-kościół

Preferencje widoczności​

Ścieżka bazowa: /membership/visibilityPreferences

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
GET/myJWT—Pobranie preferencji widoczności bieżącego użytkownika
POST/JWT—Zapisanie preferencji widoczności (widoczność adresu, telefonu, e-maila)

Zapytania​

Ścieżka bazowa: /membership/query

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
POST/membersJWT—Wyszukiwanie członków w języku naturalnym za pomocą AI. Treść: { text, subDomain, siteUrl }

Błędy po stronie klienta​

Ścieżka bazowa: /membership/clientErrors

MetodaŚcieżkaUwierzytelnianieUprawnienieOpis
POST/JWT—Zapisanie błędu po stronie klienta

Powiązane strony​