Mercurial > prosody-modules
diff mod_rest/mod_rest.lua @ 3803:dc2b5a412286
mod_rest: Log sent and received stanzas in style of mod_c2s etc
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 01 Jan 2020 05:36:09 +0100 |
parents | f88e07630e4e |
children | d74509cd35fb |
line wrap: on
line diff
--- a/mod_rest/mod_rest.lua Tue Dec 31 03:37:46 2019 +0100 +++ b/mod_rest/mod_rest.lua Wed Jan 01 05:36:09 2020 +0100 @@ -1,6 +1,6 @@ -- RESTful API -- --- Copyright (c) 2019 Kim Alvefur +-- Copyright (c) 2019-2020 Kim Alvefur -- -- This file is MIT/X11 licensed. @@ -62,6 +62,7 @@ type = payload.attr.type, ["xml:lang"] = payload.attr["xml:lang"], }; + module:log("debug", "Received[rest]: %s", payload:top_tag()); if payload.name == "iq" then if payload.attr.type ~= "get" and payload.attr.type ~= "set" then return errors.new({ code = 400, text = "'iq' stanza must be of type 'get' or 'set'" }); @@ -69,11 +70,13 @@ return module:send_iq(payload):next( function (result) response.headers.content_type = "application/xmpp+xml"; + module:log("debug", "Sending[rest]: %s", result.stanza:top_tag()); return tostring(result.stanza); end, function (error) if error.context.stanza then response.headers.content_type = "application/xmpp+xml"; + module:log("debug", "Sending[rest]: %s", error.context.stanza:top_tag()); return tostring(error.context.stanza); else return error; @@ -82,6 +85,7 @@ elseif payload.name == "message" or payload.name == "presence" then local origin = {}; function origin.send(stanza) + module:log("debug", "Sending[rest]: %s", stanza:top_tag()); response:send(tostring(stanza)); return true; end @@ -149,6 +153,7 @@ -- Keep only the top level element and let the rest be GC'd stanza = st.clone(stanza, true); + module:log("debug", "Sending[rest]: %s", stanza:top_tag()); http.request(rest_url, { body = request_body, headers = { @@ -211,6 +216,8 @@ reply:add_direct_child(receipt); end + module:log("debug", "Received[rest]: %s", reply:top_tag()); + origin.send(reply); end);