Saltar al contenido principal

Puntos Finales de Membresía

El módulo de Membership gestiona personas, iglesias, grupos, hogares, roles, permisos, formularios, y configuración. Es el módulo más grande y proporciona la capa central de identidad y autorización para todos los demás módulos.

Ruta base: /membership

Personas

Ruta base: /membership/people

MétodoRutaAuthPermisoDescripción
GET/JWTPeople.View o MemberEnumera todas las personas de la iglesia
GET/:idJWTPeople.View o registro propioObtener una persona por ID (incluye envíos de formulario)
GET/ids?ids=JWTPeople.View o MemberObtener múltiples personas por IDs separados por comas
GET/basic?ids=JWTObtener información básica (solo nombre) para múltiples personas
GET/recentJWTPeople.View o MemberPersonas agregadas recientemente
GET/search?term=&email=JWTPeople.View o MemberBuscar personas por nombre o correo
GET/search/phone?number=JWTPeople.View o MemberBuscar por número de teléfono
GET/search/group?groupId=JWTPeople.View o MemberObtener personas en un grupo específico
GET/household/:householdIdJWTObtener todas las personas en un hogar
GET/attendanceJWTPeople.EditCargar asistentes con filtros (campusId, serviceId, serviceTimeId, groupId, categoryName, startDate, endDate)
GET/timeline?personIds=&groupIds=JWTCargar datos de línea de tiempo para personas y grupos
GET/directory/:idJWTObtener persona para vista de directorio (respeta preferencias de visibilidad)
GET/claim/:churchIdJWTReclamar un registro de persona para el usuario actual en una iglesia
POST/JWTPeople.Edit o EditSelfCrear o actualizar personas (lote)
POST/searchJWTPeople.View o MemberBuscar personas (variante POST)
POST/advancedSearchJWTPeople.View o MemberBúsqueda multi-condición (edad, birthMonth, membershipStatus, etc.)
POST/loadOrCreatePúblicoEncontrar o crear una persona por correo. Cuerpo: { churchId, email, firstName, lastName }
POST/household/:householdIdJWTPeople.EditActualizar asignaciones de miembros del hogar
POST/public/emailPúblicoEnviar un correo a una persona. Cuerpo: { churchId, personId, subject, body, appName }
POST/apiEmailsInternoCargar correos de personas por IDs (servidor a servidor, requiere jwtSecret)
DELETE/:idJWTPeople.EditEliminar una persona

Ejemplo: Buscar Personas

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

Ejemplo: Crear una Persona

POST /membership/people
Authorization: Bearer <token>

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

Usuarios

Ruta base: /membership/users

Consulta Autenticación y Permisos para puntos finales de inicio de sesión, registro, y gestión de contraseñas.

MétodoRutaAuthPermisoDescripción
POST/loginPúblicoIniciar sesión (correo/contraseña, refresh de JWT, o authGuid)
POST/registerPúblicoRegistrar un nuevo usuario
POST/forgotPúblicoEnviar correo de restablecimiento de contraseña
POST/setPasswordGuidPúblicoEstablecer contraseña usando GUID de autenticación desde el enlace de correo
POST/verifyCredentialsPúblicoVerificar correo/contraseña y devolver las iglesias asociadas
POST/loadOrCreateJWTEncontrar o crear un usuario por correo/userId
POST/setDisplayNameJWTActualizar el nombre y apellido del usuario
POST/updateEmailJWTCambiar la dirección de correo del usuario
POST/updatePasswordJWTCambiar la contraseña del usuario (mín. 6 caracteres)
POST/updateOptedOutJWTEstablecer el estado de exclusión de una persona
GET/search?term=JWTServer.AdminBuscar todos los usuarios por nombre/correo
DELETE/JWTEliminar la cuenta del usuario actual

Iglesias

Ruta base: /membership/churches

MétodoRutaAuthPermisoDescripción
GET/JWTCargar todas las iglesias para el usuario actual
GET/:idJWTObtener iglesia por ID
GET/:id/getDomainAdminJWTObtener el usuario administrador de dominio para una iglesia
GET/:id/impersonateJWTServer.AdminSuplantar una iglesia (solo administrador del servidor)
GET/all?term=JWTServer.AdminBuscar todas las iglesias (admin)
GET/search/?name=PúblicoBuscar iglesias por nombre
GET/lookup/?subDomain=&id=PúblicoBuscar una iglesia por subdominio o ID
POST/JWTSettings.EditActualizar detalles de la iglesia
POST/addJWTRegistrar una nueva iglesia. Campos requeridos: name, address1, city, state, zip, country
POST/searchPúblicoBuscar iglesias por nombre (variante POST)
POST/selectJWTSeleccionar/cambiar a una iglesia. Cuerpo: { churchId } o { subDomain }
POST/:id/archiveJWTServer.AdminArchivar o desarchivar una iglesia
POST/byIdsPúblicoCargar múltiples iglesias por IDs
DELETE/deleteAbandonedJWTServer.AdminEliminar iglesias abandonadas por 7+ días

Grupos

Ruta base: /membership/groups

Extiende CRUD estándar (GET /, GET /:id de la clase base).

MétodoRutaAuthPermisoDescripción
GET/JWTEnumera todos los grupos
GET/:idJWTObtener grupo por ID
GET/search?campusId=&serviceId=&serviceTimeId=JWTBuscar grupos por filtros de servicio
GET/myJWTObtener grupos para el usuario actual
GET/my/:tagJWTObtener grupos del usuario actual filtrados por etiqueta
GET/tag/:tagJWTObtener todos los grupos con una etiqueta específica
GET/public/:churchId/:idPúblicoObtener un grupo público por iglesia e ID
GET/public/:churchId/tag/:tagPúblicoObtener grupos públicos por etiqueta
GET/public/:churchId/label?label=PúblicoObtener grupos públicos por etiqueta descriptiva
GET/public/:churchId/slug/:slugPúblicoObtener un grupo público por slug
POST/JWTGroups.EditCrear o actualizar grupos (genera slug automáticamente)
DELETE/:idJWTGroups.EditEliminar un grupo (también elimina equipos hijos para grupos de ministerio)

Miembros de Grupo

Ruta base: /membership/groupmembers

Extiende CRUD estándar (GET /:id, DELETE /:id de la clase base).

MétodoRutaAuthPermisoDescripción
GET/:idJWTGroupMembers.ViewObtener miembro de grupo por ID
GET/JWTGroupMembers.View*Enumera miembros de grupo. Filtra por ?groupId=, ?groupIds=, o ?personId=. *También permitido si el usuario está en el grupo o consulta su propio personId
GET/myJWTObtener las membresías de grupo del usuario actual
GET/basic/:groupIdJWTObtener lista básica de miembros para un grupo
GET/public/leaders/:churchId/:groupIdPúblicoObtener líderes de grupo (público)
GET/public/:churchId/:groupIdPúblicoObtener la lista pública de un grupo (campos mínimos: personId, displayName, leader, foto). Solo cuando el grupo lo habilita vía publicRoster; alimenta el elemento staffGrid del generador de sitios web
POST/JWTGroupMembers.EditAgregar o actualizar miembros de grupo
DELETE/:idJWTGroupMembers.ViewQuitar un miembro de grupo

Hogares

Ruta base: /membership/households

Controlador CRUD estándar.

MétodoRutaAuthPermisoDescripción
GET/JWTEnumera todos los hogares
GET/:idJWTObtener hogar por ID
POST/JWTPeople.EditCrear o actualizar hogares
DELETE/:idJWTPeople.EditEliminar un hogar

Roles

Ruta base: /membership/roles

MétodoRutaAuthPermisoDescripción
GET/:idJWTRoles.ViewObtener rol por ID
GET/church/:churchIdJWTRoles.ViewObtener todos los roles para una iglesia
POST/JWTRoles.EditCrear o actualizar roles
DELETE/:idJWTRoles.EditEliminar un rol (también elimina sus permisos y miembros)

Miembros de Rol

Ruta base: /membership/rolemembers

MétodoRutaAuthPermisoDescripción
GET/roles/:idJWTRoles.ViewObtener miembros para un rol. Agrega ?include=users para incluir detalles de usuario
POST/JWTRoles.EditAgregar miembros a un rol (crea usuario si el correo no existe)
DELETE/:idJWTRoles.ViewQuitar un miembro de rol
DELETE/self/:churchId/:userIdJWTQuitarte a ti mismo de una iglesia

Permisos de Rol

Ruta base: /membership/rolepermissions

MétodoRutaAuthPermisoDescripción
GET/roles/:idJWTRoles.ViewObtener permisos para un rol (usa null como ID para el rol "Everyone")
POST/JWTRoles.EditCrear o actualizar permisos de rol
DELETE/:idJWTRoles.EditEliminar un permiso de rol

Permisos

Ruta base: /membership/permissions

MétodoRutaAuthPermisoDescripción
GET/JWTObtener la lista completa de permisos disponibles

Formularios

Ruta base: /membership/forms

MétodoRutaAuthPermisoDescripción
GET/JWTForms.Admin o Forms.EditEnumera todos los formularios (el admin ve todos; los editores ven los asignados + formularios sin miembros)
GET/:idJWTAcceso al formularioObtener un formulario por ID
GET/archivedJWTForms.Admin o Forms.EditEnumera formularios archivados
GET/standalone/:id?churchId=JWTObtener un formulario independiente (los formularios restringidos requieren auth)
POST/JWTForms.Admin o Forms.EditCrear o actualizar formularios
DELETE/:idJWTAcceso al formularioEliminar un formulario

Envíos de Formulario

Ruta base: /membership/formsubmissions

MétodoRutaAuthPermisoDescripción
GET/JWTForms.Admin o Forms.EditEnumera envíos. Filtra por ?personId= o ?formId=
GET/:idJWTForms.Admin o Forms.EditObtener envío por ID. Agrega ?include=form,questions,answers
GET/formId/:formIdJWTAcceso al formularioObtener todos los envíos para un formulario (incluye formulario, preguntas, respuestas)
POST/JWTEnviar respuestas de formulario (maneja formularios restringidos/no restringidos, envía notificaciones por correo). Cuando el formulario tiene autoCreatePerson, encuentra o crea una persona Guest por correo y vincula el envío; cuando followUpSubject/followUpBody están establecidos, envía un correo de seguimiento con plantilla al remitente
DELETE/:idJWTForms.Admin o Forms.EditEliminar un envío y sus respuestas

Preguntas

Ruta base: /membership/questions

MétodoRutaAuthPermisoDescripción
GET/JWTAcceso al formularioEnumera preguntas para un formulario. Requiere ?formId=
GET/:idJWTAcceso al formularioObtener una pregunta por ID
GET/unrestricted?formId=JWTObtener preguntas para un formulario no restringido
GET/sort/:id/upJWTMover una pregunta hacia arriba en el orden de clasificación
GET/sort/:id/downJWTMover una pregunta hacia abajo en el orden de clasificación
POST/JWTAcceso al formularioCrear o actualizar preguntas (asigna orden de clasificación automáticamente)
DELETE/:id?formId=JWTAcceso al formularioEliminar una pregunta

Respuestas

Ruta base: /membership/answers

MétodoRutaAuthPermisoDescripción
GET/JWTForms.Admin o Forms.EditEnumera respuestas. Filtra por ?formSubmissionId=
POST/JWTForms.Admin o Forms.EditCrear o actualizar respuestas

Permisos de Miembro

Ruta base: /membership/memberpermissions

Controla el acceso por miembro a formularios específicos.

MétodoRutaAuthPermisoDescripción
GET/:idJWTAcceso al formularioObtener un permiso de miembro por ID
GET/member/:idJWTAcceso al formularioObtener todos los permisos de formulario para un miembro
GET/form/:idJWTAcceso al formularioObtener todos los permisos de miembro para un formulario
GET/form/:id/myJWTAcceso al formularioObtener el permiso del usuario actual para un formulario
POST/JWTAcceso al formularioCrear o actualizar permisos de miembro
DELETE/:id?formId=JWTAcceso al formularioEliminar un permiso de miembro
DELETE/member/:id?formId=JWTAcceso al formularioEliminar todos los permisos para un miembro en un formulario

Configuración

Ruta base: /membership/settings

MétodoRutaAuthPermisoDescripción
GET/JWTSettings.EditObtener toda la configuración de la iglesia
GET/public/:churchIdPúblicoObtener configuración pública de una iglesia
POST/JWTSettings.EditGuardar configuración (admite carga de imagen en base64)

Dominios

Ruta base: /membership/domains

Extiende CRUD estándar (GET /:id, GET /, DELETE /:id de la clase base).

MétodoRutaAuthPermisoDescripción
GET/JWTEnumera todos los dominios
GET/:idJWTObtener dominio por ID
GET/lookup/:domainNameJWTBuscar un dominio por nombre
GET/public/lookup/:domainNamePúblicoBúsqueda pública de dominio por nombre
GET/health/checkPúblicoEjecutar verificación de salud en dominios no verificados
POST/JWTSettings.EditCrear o actualizar dominios (activa la actualización de Caddy)
DELETE/:idJWTSettings.EditEliminar un dominio

Usuario-Iglesia

Ruta base: /membership/userchurch

Gestiona la asociación entre usuarios e iglesias.

MétodoRutaAuthPermisoDescripción
GET/userid/:userIdJWTObtener registro usuario-iglesia por ID de usuario
GET/personid/:personIdJWTObtener el correo del usuario vinculado de una persona
GET/user/:userIdJWTServer.AdminCargar todas las iglesias para un usuario
POST/JWTCrear una asociación usuario-iglesia
PATCH/:userIdJWTActualizar la hora del último acceso y registrar el acceso
DELETE/record/:userId/:churchId/:personIdJWTEliminar un registro usuario-iglesia

Preferencias de Visibilidad

Ruta base: /membership/visibilityPreferences

MétodoRutaAuthPermisoDescripción
GET/myJWTObtener las preferencias de visibilidad del usuario actual
POST/JWTGuardar preferencias de visibilidad (visibilidad de dirección, teléfono, correo)

Consulta

Ruta base: /membership/query

MétodoRutaAuthPermisoDescripción
POST/membersJWTBúsqueda de miembros en lenguaje natural usando IA. Cuerpo: { text, subDomain, siteUrl }

Errores de Cliente

Ruta base: /membership/clientErrors

MétodoRutaAuthPermisoDescripción
POST/JWTRegistrar un error del lado del cliente

Páginas Relacionadas