1#[derive(Debug, PartialEq, Clone, serde::Serialize, serde::Deserialize)]
2pub struct Condition {
3 pub variable: String,
4 pub value: serde_json::Value,
5}
6
7impl Condition {
8 pub fn is_true(&self, data: &ftd::DataDependenciesMap) -> bool {
9 if let Some(ftd::Data { value, .. }) = data.get(self.variable.as_str()) {
10 let v = value.to_string().replace('\"', "");
11 return if self.value.eq("$IsNull$") {
12 v.is_empty() || value.eq(&serde_json::Value::Null)
13 } else if self.value.eq("$IsNotNull$") {
14 !v.is_empty() && !value.eq(&serde_json::Value::Null)
15 } else {
16 self.value.eq(value)
17 };
18 }
19
20 true
21 }
22}