Every type gets additionalProperties set to "false" (#4424)

#4423
This commit is contained in:
schoetbi
2017-08-31 17:56:04 +02:00
committed by Wouter van Oortmerssen
parent d5b4db0692
commit bb736091f3
3 changed files with 29 additions and 18 deletions

View File

@@ -175,13 +175,14 @@ class JsonSchemaGenerator : public BaseGenerator {
}
code_ += typeLine;
}
code_ += " },"; // close properties
std::vector<FieldDef *> requiredProperties;
std::copy_if(properties.begin(), properties.end(),
back_inserter(requiredProperties),
[](FieldDef const *prop) { return prop->required; });
if (requiredProperties.size() > 0) {
code_ += " },"; // close properties
std::string required_string(" \"required\" : [ ");
std::string required_string(" \"required\" : [");
for (auto req_prop = requiredProperties.cbegin();
req_prop != requiredProperties.cend();
++req_prop) {
@@ -190,12 +191,10 @@ class JsonSchemaGenerator : public BaseGenerator {
required_string.append(", ");
}
}
required_string.append("]");
required_string.append("],");
code_ += required_string;
} else {
code_ += " }"; // close properties
}
code_ += " \"additionalProperties\" : false";
std::string closeType(" }");
if (*s != parser_.structs_.vec.back()) {
closeType.append(",");