Software / code / prosody-modules
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 |