Try to find required properties in patch

This commit is contained in:
didier-brizet 2022-09-14 17:41:38 +02:00
parent 2354610da5
commit 4fafbd7266

View File

@ -1012,10 +1012,6 @@ class object : public schema
if (minProperties_.first && instance.size() < minProperties_.second)
e.error(ptr, instance, "too few properties");
for (auto &r : required_)
if (instance.find(r) == instance.end())
e.error(ptr, instance, "required property '" + r + "' not found in object");
// for each property in instance
for (auto &p : instance.items()) {
if (propertyNames_)
@ -1064,6 +1060,14 @@ class object : public schema
}
}
for (const auto &r : required_) {
if (instance.find(r) != instance.end())
continue;
if (!find_patch_add((ptr / r), patch).is_null())
continue;
e.error(ptr, instance, "required property '" + r + "' not found in object");
}
for (auto &dep : dependencies_) {
auto prop = instance.find(dep.first);
if (prop != instance.end()) // if dependency-property is present in instance