aboutsummaryrefslogtreecommitdiffstats
path: root/teal-src
diff options
context:
space:
mode:
Diffstat (limited to 'teal-src')
-rw-r--r--teal-src/prosody/util/jsonschema.tl11
1 files changed, 5 insertions, 6 deletions
diff --git a/teal-src/prosody/util/jsonschema.tl b/teal-src/prosody/util/jsonschema.tl
index 16099e76..e47b859c 100644
--- a/teal-src/prosody/util/jsonschema.tl
+++ b/teal-src/prosody/util/jsonschema.tl
@@ -84,8 +84,8 @@ local record json_schema_object
maxItems : integer
minItems : integer
uniqueItems : boolean
- maxContains : integer -- NYI
- minContains : integer -- NYI
+ maxContains : integer
+ minContains : integer
-- objects
maxProperties : integer -- NYI
@@ -429,14 +429,13 @@ function complex_validate (schema : json_schema_object, data : any, root : json_
end
if schema.contains ~= nil then
- local found = false
+ local found = 0
for i = 1, #data do
if validate(schema.contains, data[i], root) then
- found = true
- break
+ found = found + 1
end
end
- if not found then
+ if found < (schema.minContains or 1) or found > (schema.maxContains or math.huge) then
return false
end
end