Mercurial > prosody-modules
comparison mod_rest/mod_rest.lua @ 3816:8473fd2d09c1
mod_rest: Default to replying with same type as request
If you send JSON then you get JSON back unless you say something
different with the Accept header.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 01 Jan 2020 16:40:10 +0100 |
parents | 1a0a612d36bc |
children | 11272a3233ce |
comparison
equal
deleted
inserted
replaced
3815:1a0a612d36bc | 3816:8473fd2d09c1 |
---|---|
100 id = payload.attr.id or id.medium(), | 100 id = payload.attr.id or id.medium(), |
101 type = payload.attr.type, | 101 type = payload.attr.type, |
102 ["xml:lang"] = payload.attr["xml:lang"], | 102 ["xml:lang"] = payload.attr["xml:lang"], |
103 }; | 103 }; |
104 module:log("debug", "Received[rest]: %s", payload:top_tag()); | 104 module:log("debug", "Received[rest]: %s", payload:top_tag()); |
105 local send_type = decide_type(request.headers.accept) | 105 local send_type = decide_type((request.headers.accept or "") ..",".. request.headers.content_type) |
106 if payload.name == "iq" then | 106 if payload.name == "iq" then |
107 if payload.attr.type ~= "get" and payload.attr.type ~= "set" then | 107 if payload.attr.type ~= "get" and payload.attr.type ~= "set" then |
108 return errors.new({ code = 422, text = "'iq' stanza must be of type 'get' or 'set'" }); | 108 return errors.new({ code = 422, text = "'iq' stanza must be of type 'get' or 'set'" }); |
109 end | 109 end |
110 return module:send_iq(payload):next( | 110 return module:send_iq(payload):next( |