Comparison

mod_rest/jsonmap.lib.lua @ 3886:b64b08b7bf8e

mod_rest: Ignore already handled top-level stanza attr fields Prevents the check in 1ec45dbc7db5 from returning an error for these fields that aren't handled in that loop.
author Kim Alvefur <zash@zash.se>
date Fri, 07 Feb 2020 20:53:57 +0100
parent 3885:1ec45dbc7db5
child 3888:04ea96a0488d
comparison
equal deleted inserted replaced
3885:1ec45dbc7db5 3886:b64b08b7bf8e
88 end 88 end
89 end; 89 end;
90 }; 90 };
91 91
92 local simple_types = { 92 local simple_types = {
93 -- top level stanza attributes
94 -- needed here to mark them as known fields
95 kind = "attr",
96 type = "attr",
97 to = "attr",
98 from = "attr",
99 id = "attr",
100
93 -- basic message 101 -- basic message
94 body = "text_tag", 102 body = "text_tag",
95 subject = "text_tag", 103 subject = "text_tag",
96 thread = "text_tag", 104 thread = "text_tag",
97 105
451 for k, v in pairs(t) do 459 for k, v in pairs(t) do
452 local typ = simple_types[k]; 460 local typ = simple_types[k];
453 if typ then 461 if typ then
454 if typ == "text_tag" then 462 if typ == "text_tag" then
455 s:text_tag(k, v); 463 s:text_tag(k, v);
464 elseif typ == "attr" then -- luacheck: ignore 542
465 -- handled already
456 elseif typ[1] == "text_tag" then 466 elseif typ[1] == "text_tag" then
457 s:text_tag(typ[3] or k, v, typ[2] and { xmlns = typ[2] }); 467 s:text_tag(typ[3] or k, v, typ[2] and { xmlns = typ[2] });
458 elseif typ[1] == "name" then 468 elseif typ[1] == "name" then
459 s:tag(v, { xmlns = typ[2] }):up(); 469 s:tag(v, { xmlns = typ[2] }):up();
460 elseif typ[1] == "attr" then 470 elseif typ[1] == "attr" then