Software /
code /
prosody-modules
Changeset
4519:ea1fd703bb27
mod_rest: Convert XEP-0039 to datamapping
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 22 Mar 2021 00:21:27 +0100 |
parents | 4518:073f5397c1d2 |
children | 4520:bd320ec2c2fc |
files | mod_rest/jsonmap.lib.lua mod_rest/res/schema-xmpp.json |
diffstat | 2 files changed, 36 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/mod_rest/jsonmap.lib.lua Sun Mar 21 23:54:06 2021 +0100 +++ b/mod_rest/jsonmap.lib.lua Mon Mar 22 00:21:27 2021 +0100 @@ -353,30 +353,6 @@ end }; - -- XEP-0039: Statistics Gathering - stats = { type = "func", xmlns = "http://jabber.org/protocol/stats", tagname = "query", - st2json = function (s) - local o = array(); - for stat in s:childtags("stat") do - o:push({ - name = stat.attr.name; - unit = stat.attr.unit; - value = stat.attr.value; - }); - end - return o; - end; - json2st = function (j) - local stats = st.stanza("query", { xmlns = "http://jabber.org/protocol/stats" }); - if type(j) == "table" then - for _, stat in ipairs(j) do - stats:tag("stat", { name = stat.name, unit = stat.unit, value = stat.value }):up(); - end - end - return stats; - end; - }; - }; local byxmlname = {};
--- a/mod_rest/res/schema-xmpp.json Sun Mar 21 23:54:06 2021 +0100 +++ b/mod_rest/res/schema-xmpp.json Mon Mar 22 00:21:27 2021 +0100 @@ -75,6 +75,42 @@ "x_name_is_value" : true } }, + "stats" : { + "description" : "Simple statistics gathering, array of (name, unit, value) tuples.", + "items" : { + "properties" : { + "name" : { + "type" : "string", + "xml" : { + "attribute" : true + } + }, + "unit" : { + "type" : "string", + "xml" : { + "attribute" : true + } + }, + "value" : { + "type" : "number", + "xml" : { + "attribute" : true + } + } + }, + "type" : "object", + "xml" : { + "name" : "stat" + } + }, + "title" : "XEP-0039: Statistics Gathering", + "type" : "array", + "xml" : { + "name" : "query", + "namespace" : "http://jabber.org/protocol/stats", + "wrapped" : true + } + }, "version" : { "description" : "Ask about software version information", "properties" : {