aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2021-10-25 21:45:46 +0200
committerKim Alvefur <zash@zash.se>2021-10-25 21:45:46 +0200
commit851127ecd70c9c7e5e5c13565d26b908a020b69e (patch)
tree966bb4c6d5acfcedb67e8dca2695fe647e783b72 /util
parent7a272b16703fd26c19f6f2519229b1ca539377ed (diff)
downloadprosody-851127ecd70c9c7e5e5c13565d26b908a020b69e.tar.gz
prosody-851127ecd70c9c7e5e5c13565d26b908a020b69e.zip
util.dataforms: Add support for datetime field types via XEP-0122
Diffstat (limited to 'util')
-rw-r--r--util/dataforms.lua8
1 files changed, 8 insertions, 0 deletions
diff --git a/util/dataforms.lua b/util/dataforms.lua
index 25e198df..79559b22 100644
--- a/util/dataforms.lua
+++ b/util/dataforms.lua
@@ -14,6 +14,7 @@ local tostring = tostring;
local t_concat = table.concat;
local st = require "util.stanza";
local jid_prep = require "util.jid".prep;
+local datetime = require "util.datetime";
local _ENV = nil;
-- luacheck: std none
@@ -321,6 +322,13 @@ data_validators["pubsub:integer-or-max"] =
end
end
+data_validators["xs:dateTime"] =
+ function(data, field) -- luacheck: ignore 212/field
+ local n = datetime.parse(data);
+ if not n then return false, "invalid timestamp"; end
+ return true, n;
+ end
+
local function get_form_type(form)
if not st.is_stanza(form) then