From fcda0a8a03079e9ed478433a60f281d8c2e8ec6f Mon Sep 17 00:00:00 2001 From: Stefan Date: Tue, 24 Dec 2024 13:31:32 +0100 Subject: [PATCH] change validator to string --- core/engine/src/handler/graph.rs | 18 ++++++++++++++---- core/engine/src/model/mod.rs | 6 ++++-- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/core/engine/src/handler/graph.rs b/core/engine/src/handler/graph.rs index de8bb5fc..db735b7e 100644 --- a/core/engine/src/handler/graph.rs +++ b/core/engine/src/handler/graph.rs @@ -205,10 +205,15 @@ impl DecisionGraph< trace_data: None, }); - if let Some(json_schema) = &content.schema { + if let Some(json_schema) = content + .schema + .as_ref() + .map(|s| serde_json::from_str::(&s).ok()) + .flatten() + { let validator = self .validator_cache - .get_or_insert(node.id.as_str(), json_schema) + .get_or_insert(node.id.as_str(), &json_schema) .await .map_err(|e| NodeError { source: e.into(), @@ -238,10 +243,15 @@ impl DecisionGraph< trace_data: None, }); - if let Some(json_schema) = &content.schema { + if let Some(json_schema) = content + .schema + .as_ref() + .map(|s| serde_json::from_str::(&s).ok()) + .flatten() + { let validator = self .validator_cache - .get_or_insert(node.id.as_str(), json_schema) + .get_or_insert(node.id.as_str(), &json_schema) .await .map_err(|e| NodeError { source: e.into(), diff --git a/core/engine/src/model/mod.rs b/core/engine/src/model/mod.rs index 7a143d85..657b39fc 100644 --- a/core/engine/src/model/mod.rs +++ b/core/engine/src/model/mod.rs @@ -71,13 +71,15 @@ pub enum DecisionNodeKind { #[derive(Clone, Debug, PartialEq, Deserialize, Serialize, Default)] #[serde(rename_all = "camelCase")] pub struct InputNodeContent { - pub schema: Option, + #[serde(default, deserialize_with = "empty_string_is_none")] + pub schema: Option, } #[derive(Clone, Debug, PartialEq, Deserialize, Serialize, Default)] #[serde(rename_all = "camelCase")] pub struct OutputNodeContent { - pub schema: Option, + #[serde(default, deserialize_with = "empty_string_is_none")] + pub schema: Option, } #[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]