Sync desde Mazmo
El sync es la operacion que trae la lista de RSVPs de un evento desde Mazmo al sistema local.
Por que es necesario
Los guests confirman asistencia directamente en Mazmo. El sistema local no tiene acceso en tiempo real a esa informacion: hay que pedirla explicitamente. El sync hace esa consulta y actualiza la base de datos local.
Cuando hacer sync
- Antes del evento: para tener la lista de RSVPs cargada y lista para la puerta.
- Durante el evento: si alguien confirma asistencia a ultimo momento en Mazmo, un nuevo sync lo incluye.
- Multiples veces: el sync es idempotente, se puede correr cuantas veces se quiera sin riesgo.
Un meetup finalizado no acepta syncs.
Que hace el sync
- Consulta la API de Mazmo con la URL del evento
- Obtiene la lista de usuarios que hicieron RSVP (con su
userIdy timestamp de RSVP) - Consulta los perfiles de esos usuarios en Mazmo (en lotes de hasta 30 por request)
- Upsert de guests: si el guest no existe en el sistema, lo crea. Si ya existe, no lo modifica.
- Upsert de RSVPs: si el RSVP no existe, lo crea. Si ya existe, actualiza el
rsvp_time. - Marca como cancelados los RSVPs que ya no estan en la lista de Mazmo.
Lo que el sync NUNCA toca
El sync nunca modifica los datos de check-in:
has_arrivedarrival_timearrival_orderchecked_in_by_id
Esto es critico: si alguien ya fue chequeado y se hace un nuevo sync, su estado de check-in no cambia.
Idempotencia
El sync es seguro de correr multiples veces. El comportamiento es siempre el mismo:
- Guests ya existentes: no se modifican
- RSVPs ya existentes: se actualiza el
rsvp_time, nada mas - Check-in data: intocable
RSVPs cancelados
Si un guest canceló su RSVP en Mazmo (y por lo tanto no aparece en la lista del evento), el sync marca ese RSVP como cancelled_rsvp = true. Si despues el guest vuelve a confirmar, el sync lo reactiva.
Un RSVP cancelado no impide el check-in (el staff puede hacerlo igual), pero si el guest no aparece en la lista principal al filtrar por RSVPs activos.
Errores posibles
| Error | Causa | Que hacer |
|---|---|---|
| 504 Gateway Timeout | Mazmo no responde | Intentar de nuevo en unos minutos |
| 502 Bad Gateway | Mazmo devolvio un error | Verificar que la URL del evento siga siendo valida en Mazmo |
Respuesta del sync
El sistema devuelve un resumen de la operacion:
- inserted: cuantos RSVPs nuevos se agregaron
- skipped: cuantos ya existian
- total_in_db: total de RSVPs para este meetup despues del sync