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