Mercurial > prosody-modules
comparison mod_rest/mod_rest.lua @ 4918:9d0ec61c70a1
mod_rest: Catch and coerce errors in echo endpoint
This should ensure problems in encode() are reported back
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 07 Apr 2022 17:48:08 +0200 |
parents | dc7c9ae15f43 |
children | 347e34c3c7e2 |
comparison
equal
deleted
inserted
replaced
4917:3dc8e329d233 | 4918:9d0ec61c70a1 |
---|---|
330 | 330 |
331 module:log("debug", "Received[rest]: %s", payload:top_tag()); | 331 module:log("debug", "Received[rest]: %s", payload:top_tag()); |
332 local send_type = decide_type((request.headers.accept or "") ..",".. (request.headers.content_type or ""), supported_outputs) | 332 local send_type = decide_type((request.headers.accept or "") ..",".. (request.headers.content_type or ""), supported_outputs) |
333 | 333 |
334 if echo then | 334 if echo then |
335 local ret, err = errors.coerce(encode(send_type, payload)); | |
336 if not ret then return err; end | |
335 response.headers.content_type = send_type; | 337 response.headers.content_type = send_type; |
336 return encode(send_type, payload); | 338 return ret; |
337 end | 339 end |
338 | 340 |
339 if payload.name == "iq" then | 341 if payload.name == "iq" then |
340 local responses = st.stanza("xmpp"); | 342 local responses = st.stanza("xmpp"); |
341 function origin.send(stanza) | 343 function origin.send(stanza) |