Mercurial > prosody-modules
comparison mod_rest/jsonmap.lib.lua @ 4841:f69c5a443156
mod_rest: Fix nested message stanzas in XEP-0297 containers
It's all a bit awkward because it doesn't normally use the whole schema
directly, but rather checks which stanza type is used and picks out that
property as a schema. Which also prevents references from working.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 29 Dec 2021 19:40:28 +0100 |
parents | f74c7c518bb2 |
children | 1d231fb827d3 |
comparison
equal
deleted
inserted
replaced
4840:e9b7c8db3ebd | 4841:f69c5a443156 |
---|---|
16 copyto.properties[key] = prop; | 16 copyto.properties[key] = prop; |
17 end | 17 end |
18 end | 18 end |
19 schema.properties.message.properties.archive.properties.forward = schema.properties.message.properties.forwarded; | 19 schema.properties.message.properties.archive.properties.forward = schema.properties.message.properties.forwarded; |
20 schema.properties.message.properties.forwarded.properties.delay = schema._common.delay; | 20 schema.properties.message.properties.forwarded.properties.delay = schema._common.delay; |
21 schema.properties.message.properties.forwarded.properties.message.properties = schema.properties.message.properties; | 21 schema.properties.message.properties.forwarded.properties.message = schema.properties.message; |
22 schema.properties.iq.properties.archive.properties.form = schema._common.dataform; | 22 schema.properties.iq.properties.archive.properties.form = schema._common.dataform; |
23 schema.properties.iq.properties.archive.properties.page = schema._common.rsm; | 23 schema.properties.iq.properties.archive.properties.page = schema._common.rsm; |
24 schema.properties.iq.properties.result.properties.page = schema._common.rsm; | 24 schema.properties.iq.properties.result.properties.page = schema._common.rsm; |
25 schema._common = nil; | 25 schema._common = nil; |
26 end | 26 end |
534 archive["before"] = nil; | 534 archive["before"] = nil; |
535 archive["max"] = nil; | 535 archive["max"] = nil; |
536 end | 536 end |
537 end | 537 end |
538 | 538 |
539 local s = map.unparse(schema.properties[kind or "message"], t); | 539 local s = map.unparse(schema, { [kind or "message"] = t }).tags[1]; |
540 | 540 |
541 s.attr.type = t_type; | 541 s.attr.type = t_type; |
542 s.attr.to = str(t.to) and jid.prep(t.to); | 542 s.attr.to = str(t.to) and jid.prep(t.to); |
543 s.attr.from = str(t.to) and jid.prep(t.from); | 543 s.attr.from = str(t.to) and jid.prep(t.from); |
544 | 544 |