Middleware de Express que verifica la firma y te entrega los cambios.
app.post( "/webhooks/planvortex", planvortexWebhooks({ secret:process.env.PLANVORTEX_CLIENT_SECRET!, onChanges:async (changes) => { for (constchangeofchanges) { if (isCommentChange(change)) awaitmoderate(change.commentObj); } }, }), );
No hace falta express.raw() delante: si no encuentra cuerpo, lee el flujo él mismo. Lo que
no puede es arreglar un express.json() global, porque ése ya se bebió los bytes y los devuelve
convertidos en objeto — ahí responde 400 diciendo exactamente eso.
Responde él: 200 si todo fue bien, 401 si la firma no cuadra o falta, 400 si el cuerpo no sirve,
y 500 si tu onChanges lanza (que además llega a next, para que lo vea tu manejador de
errores). Por eso va al final de la cadena y no lleva un next() de paso.
Middleware de Express que verifica la firma y te entrega los cambios.
No hace falta
express.raw()delante: si no encuentra cuerpo, lee el flujo él mismo. Lo que no puede es arreglar unexpress.json()global, porque ése ya se bebió los bytes y los devuelve convertidos en objeto — ahí responde 400 diciendo exactamente eso.Responde él: 200 si todo fue bien, 401 si la firma no cuadra o falta, 400 si el cuerpo no sirve, y 500 si tu
onChangeslanza (que además llega anext, para que lo vea tu manejador de errores). Por eso va al final de la cadena y no lleva unnext()de paso.