summaryrefslogtreecommitdiff
path: root/res/stasis_http/ari_model_validators.c
diff options
context:
space:
mode:
Diffstat (limited to 'res/stasis_http/ari_model_validators.c')
-rw-r--r--res/stasis_http/ari_model_validators.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/res/stasis_http/ari_model_validators.c b/res/stasis_http/ari_model_validators.c
index 14b5d6974..bf3c0e7d0 100644
--- a/res/stasis_http/ari_model_validators.c
+++ b/res/stasis_http/ari_model_validators.c
@@ -57,6 +57,44 @@ ari_validator ari_validate_asterisk_info_fn(void)
return ari_validate_asterisk_info;
}
+int ari_validate_variable(struct ast_json *json)
+{
+ int res = 1;
+ struct ast_json_iter *iter;
+ int has_value = 0;
+
+ for (iter = ast_json_object_iter(json); iter; iter = ast_json_object_iter_next(json, iter)) {
+ if (strcmp("value", ast_json_object_iter_key(iter)) == 0) {
+ int prop_is_valid;
+ has_value = 1;
+ prop_is_valid = ari_validate_string(
+ ast_json_object_iter_value(iter));
+ if (!prop_is_valid) {
+ ast_log(LOG_ERROR, "ARI Variable field value failed validation\n");
+ res = 0;
+ }
+ } else
+ {
+ ast_log(LOG_ERROR,
+ "ARI Variable has undocumented field %s\n",
+ ast_json_object_iter_key(iter));
+ res = 0;
+ }
+ }
+
+ if (!has_value) {
+ ast_log(LOG_ERROR, "ARI Variable missing required field value\n");
+ res = 0;
+ }
+
+ return res;
+}
+
+ari_validator ari_validate_variable_fn(void)
+{
+ return ari_validate_variable;
+}
+
int ari_validate_endpoint(struct ast_json *json)
{
int res = 1;