From 5b0713f1cf3d125791f3cba8a6be93c675f80101 Mon Sep 17 00:00:00 2001 From: JeremyStarTM Date: Sat, 11 May 2024 11:52:37 +0200 Subject: [PATCH] Fix nested dictionaries --- src/classes/validationschema.gd | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/classes/validationschema.gd b/src/classes/validationschema.gd index e83b2bb..f52fd0c 100644 --- a/src/classes/validationschema.gd +++ b/src/classes/validationschema.gd @@ -65,20 +65,20 @@ func _check_dictionary_recursive(schema_parent: Dictionary, path: String = "") - return success func evaluate() -> Array[String]: - return _evaluate_recursive(str(randf()).repeat(50), schema) + return _evaluate_recursive(str(randf()).repeat(50), schema, data) -func _evaluate_recursive(random: String, schema_parent: Dictionary, path: String = "") -> Array[String]: +func _evaluate_recursive(random: String, schema_parent: Dictionary, data_parent: Dictionary, path: String = "") -> Array[String]: var failed: Array[String] = [] for key in schema_parent: # Check if key exists in data - if str(data.get(key, random)) == random: + if str(data_parent.get(key, random)) == random: # Does not exist, append error failed.append(core.stringify_variables("Key %key% is present in schema but missing in data", { "key": path + "/" + key })) else: # Exists in data if typeof(schema[key]) == TYPE_DICTIONARY: # Key is of type Dictionary, allow for recursion to happen - failed.append_array(_evaluate_recursive(random, schema[key], path + "/" + key)) + failed.append_array(_evaluate_recursive(random, schema[key], data[key], path + "/" + key)) else: # Key is not of type Dictionary, evaluate against data schema[key].data = data[key]