Software / code / prosody
Comparison
spec/util_datamapper_spec.lua @ 12133:11060c8919b6
util.datamapper: Add support for $ref pointers
Allows reuse of repetitive definitions in schemas.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Wed, 29 Dec 2021 17:57:09 +0100 |
| parent | 11494:284c822d4c3d |
| child | 12134:912614c4bf3e |
comparison
equal
deleted
inserted
replaced
| 12132:4ff0d33dfb2b | 12133:11060c8919b6 |
|---|---|
| 13 local s, x, d | 13 local s, x, d |
| 14 local disco, disco_info, disco_schema | 14 local disco, disco_info, disco_schema |
| 15 setup(function() | 15 setup(function() |
| 16 | 16 |
| 17 -- a convenience function for simple attributes, there's a few of them | 17 -- a convenience function for simple attributes, there's a few of them |
| 18 local function attr() return {type = "string"; xml = {attribute = true}} end | 18 local function attr() return {["$ref"]="#/$defs/attr"} end |
| 19 s = { | 19 s = { |
| 20 ["$defs"] = { attr = { type = "string"; xml = { attribute = true } } }; | |
| 20 type = "object"; | 21 type = "object"; |
| 21 xml = {name = "message"; namespace = "jabber:client"}; | 22 xml = {name = "message"; namespace = "jabber:client"}; |
| 22 properties = { | 23 properties = { |
| 23 to = attr(); | 24 to = attr(); |
| 24 from = attr(); | 25 from = attr(); |
| 109 }; | 110 }; |
| 110 }; | 111 }; |
| 111 }; | 112 }; |
| 112 | 113 |
| 113 disco_schema = { | 114 disco_schema = { |
| 115 ["$defs"] = { attr = { type = "string"; xml = { attribute = true } } }; | |
| 114 type = "object"; | 116 type = "object"; |
| 115 xml = { | 117 xml = { |
| 116 name = "iq"; | 118 name = "iq"; |
| 117 namespace = "jabber:client" | 119 namespace = "jabber:client" |
| 118 }; | 120 }; |