Software /
code /
prosody-modules
Comparison
mod_rest/jsonmap.lib.lua @ 3907:d5ecb9b9cb3b
mod_rest: Update with namespace and name of XEP-0432
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 25 Feb 2020 23:33:55 +0100 |
parent | 3906:dbebc9226597 |
child | 3912:1df4900bbd29 |
comparison
equal
deleted
inserted
replaced
3906:dbebc9226597 | 3907:d5ecb9b9cb3b |
---|---|
314 return st.stanza("query", { xmlns = "jabber:iq:oob" }):text_tag("url", s); | 314 return st.stanza("query", { xmlns = "jabber:iq:oob" }):text_tag("url", s); |
315 end | 315 end |
316 end; | 316 end; |
317 }; | 317 }; |
318 | 318 |
319 -- XEP-XXXX: User-defined Data Transfer | 319 -- XEP-0432: Simple JSON Messaging |
320 payload = { type = "func", xmlns = "urn:xmpp:udt:0", tagname = "payload", | 320 payload = { type = "func", xmlns = "urn:xmpp:json-msg:0", tagname = "payload", |
321 st2json = function (s) | 321 st2json = function (s) |
322 local rawjson = s:get_child_text("json", "urn:xmpp:json:0"); | 322 local rawjson = s:get_child_text("json", "urn:xmpp:json:0"); |
323 if not rawjson then return nil, "missing-json-payload"; end | 323 if not rawjson then return nil, "missing-json-payload"; end |
324 local parsed, err = json.decode(rawjson); | 324 local parsed, err = json.decode(rawjson); |
325 if not parsed then return nil, err; end | 325 if not parsed then return nil, err; end |
328 data = parsed; | 328 data = parsed; |
329 }; | 329 }; |
330 end; | 330 end; |
331 json2st = function (s) | 331 json2st = function (s) |
332 if type(s) == "table" then | 332 if type(s) == "table" then |
333 return st.stanza("payload", { xmlns = "urn:xmpp:udt:0", datatype = s.datatype }) | 333 return st.stanza("payload", { xmlns = "urn:xmpp:json-msg:0", datatype = s.datatype }) |
334 :tag("json", { xmlns = "urn:xmpp:json:0" }):text(json.encode(s.data)); | 334 :tag("json", { xmlns = "urn:xmpp:json:0" }):text(json.encode(s.data)); |
335 end; | 335 end; |
336 end | 336 end |
337 }; | 337 }; |
338 | 338 |