diff --git a/src/merger/mod.rs b/src/merger/mod.rs index 4161eb6..72accb2 100644 --- a/src/merger/mod.rs +++ b/src/merger/mod.rs @@ -176,7 +176,7 @@ impl Merger { // Attempt to extract relative object type name let relative_type_name = match relative.get("type").and_then(|v| v.as_str()) { - Some(t) => t, + Some(t) => t.to_string(), None => continue, }; @@ -185,7 +185,7 @@ impl Merger { // Call central Database O(1) graph logic let relative_relation = self.db.get_relation( &type_def.name, - relative_type_name, + &relative_type_name, &relation_name, Some(&relative_keys), ); @@ -200,11 +200,16 @@ impl Merger { } } - let merged_relative = match self.merge_internal(Value::Object(relative), notifications)? { + let mut merged_relative = match self.merge_internal(Value::Object(relative), notifications)? { Value::Object(m) => m, _ => continue, }; + merged_relative.insert( + "type".to_string(), + Value::String(relative_type_name), + ); + Self::apply_entity_relation( &mut entity_fields, &relation.source_columns,