summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTimo Kösters <timo@koesters.xyz>2023-02-22 13:12:19 +0100
committerTimo Kösters <timo@koesters.xyz>2023-03-13 10:39:17 +0100
commit2a16a5e967ff15052fe03313711dda89d0f95232 (patch)
tree7c4aea611e14b0ce97362108bd8c2186374229e2 /src
parent2aa0a2474b9f2f7b9c091b70e48ce3b37d52ab85 (diff)
downloadconduit-2a16a5e967ff15052fe03313711dda89d0f95232.zip
fix: don't send nulls as unsigned content
Diffstat (limited to 'src')
-rw-r--r--src/service/pdu.rs33
1 files changed, 24 insertions, 9 deletions
diff --git a/src/service/pdu.rs b/src/service/pdu.rs
index 554f3be..5b5cbd0 100644
--- a/src/service/pdu.rs
+++ b/src/service/pdu.rs
@@ -111,9 +111,11 @@ impl PduEvent {
"event_id": self.event_id,
"sender": self.sender,
"origin_server_ts": self.origin_server_ts,
- "unsigned": self.unsigned,
});
+ if let Some(unsigned) = &self.unsigned {
+ json["unsigned"] = json!(unsigned);
+ }
if let Some(state_key) = &self.state_key {
json["state_key"] = json!(state_key);
}
@@ -133,10 +135,12 @@ impl PduEvent {
"event_id": self.event_id,
"sender": self.sender,
"origin_server_ts": self.origin_server_ts,
- "unsigned": self.unsigned,
"room_id": self.room_id,
});
+ if let Some(unsigned) = &self.unsigned {
+ json["unsigned"] = json!(unsigned);
+ }
if let Some(state_key) = &self.state_key {
json["state_key"] = json!(state_key);
}
@@ -155,10 +159,12 @@ impl PduEvent {
"event_id": self.event_id,
"sender": self.sender,
"origin_server_ts": self.origin_server_ts,
- "unsigned": self.unsigned,
"room_id": self.room_id,
});
+ if let Some(unsigned) = &self.unsigned {
+ json["unsigned"] = json!(unsigned);
+ }
if let Some(state_key) = &self.state_key {
json["state_key"] = json!(state_key);
}
@@ -171,32 +177,38 @@ impl PduEvent {
#[tracing::instrument(skip(self))]
pub fn to_state_event(&self) -> Raw<AnyStateEvent> {
- let json = json!({
+ let mut json = json!({
"content": self.content,
"type": self.kind,
"event_id": self.event_id,
"sender": self.sender,
"origin_server_ts": self.origin_server_ts,
- "unsigned": self.unsigned,
"room_id": self.room_id,
"state_key": self.state_key,
});
+ if let Some(unsigned) = &self.unsigned {
+ json["unsigned"] = json!(unsigned);
+ }
+
serde_json::from_value(json).expect("Raw::from_value always works")
}
#[tracing::instrument(skip(self))]
pub fn to_sync_state_event(&self) -> Raw<AnySyncStateEvent> {
- let json = json!({
+ let mut json = json!({
"content": self.content,
"type": self.kind,
"event_id": self.event_id,
"sender": self.sender,
"origin_server_ts": self.origin_server_ts,
- "unsigned": self.unsigned,
"state_key": self.state_key,
});
+ if let Some(unsigned) = &self.unsigned {
+ json["unsigned"] = json!(unsigned);
+ }
+
serde_json::from_value(json).expect("Raw::from_value always works")
}
@@ -214,18 +226,21 @@ impl PduEvent {
#[tracing::instrument(skip(self))]
pub fn to_member_event(&self) -> Raw<StateEvent<RoomMemberEventContent>> {
- let json = json!({
+ let mut json = json!({
"content": self.content,
"type": self.kind,
"event_id": self.event_id,
"sender": self.sender,
"origin_server_ts": self.origin_server_ts,
"redacts": self.redacts,
- "unsigned": self.unsigned,
"room_id": self.room_id,
"state_key": self.state_key,
});
+ if let Some(unsigned) = &self.unsigned {
+ json["unsigned"] = json!(unsigned);
+ }
+
serde_json::from_value(json).expect("Raw::from_value always works")
}