Comparison

mod_rest/jsonmap.lib.lua @ 4035:270cd50852be

mod_rest: Map xml:lang to/from JSON
author Kim Alvefur <zash@zash.se>
date Fri, 29 May 2020 12:04:04 +0200
parent 4021:1925d63eec6b
child 4251:d33b480befcb
comparison
equal deleted inserted replaced
4034:a359972d246e 4035:270cd50852be
11 kind = "attr", 11 kind = "attr",
12 type = "attr", 12 type = "attr",
13 to = "attr", 13 to = "attr",
14 from = "attr", 14 from = "attr",
15 id = "attr", 15 id = "attr",
16 lang = "attr",
16 17
17 -- basic message 18 -- basic message
18 body = "text_tag", 19 body = "text_tag",
19 subject = "text_tag", 20 subject = "text_tag",
20 thread = "text_tag", 21 thread = "text_tag",
442 kind = s.name, 443 kind = s.name,
443 type = s.attr.type, 444 type = s.attr.type,
444 to = s.attr.to, 445 to = s.attr.to,
445 from = s.attr.from, 446 from = s.attr.from,
446 id = s.attr.id, 447 id = s.attr.id,
448 lang = s.attr["xml:lang"],
447 }; 449 };
448 if s.name == "presence" and not s.attr.type then 450 if s.name == "presence" and not s.attr.type then
449 t.type = "available"; 451 t.type = "available";
450 end 452 end
451 453
536 local s = st.stanza(kind or "message", { 538 local s = st.stanza(kind or "message", {
537 type = t_type; 539 type = t_type;
538 to = str(t.to) and jid.prep(t.to); 540 to = str(t.to) and jid.prep(t.to);
539 from = str(t.to) and jid.prep(t.from); 541 from = str(t.to) and jid.prep(t.from);
540 id = str(t.id), 542 id = str(t.id),
543 ["xml:lang"] = str(t.lang),
541 }); 544 });
542 545
543 if t.to and not s.attr.to then 546 if t.to and not s.attr.to then
544 return nil, "invalid-jid-to"; 547 return nil, "invalid-jid-to";
545 end 548 end