diff --git a/src/api/client_server/read_marker.rs b/src/api/client_server/read_marker.rs index 210a6c55..f68463d6 100644 --- a/src/api/client_server/read_marker.rs +++ b/src/api/client_server/read_marker.rs @@ -88,8 +88,6 @@ pub async fn set_read_marker_route(body: Ruma) -> room_id: body.room_id.clone(), }, )?; - - services().sending.flush_room(&body.room_id)?; } Ok(set_read_marker::v3::Response {}) @@ -148,8 +146,6 @@ pub async fn create_receipt_route(body: Ruma) -> Re room_id: body.room_id.clone(), }, )?; - - services().sending.flush_room(&body.room_id)?; }, create_receipt::v3::ReceiptType::ReadPrivate => { let count = services() diff --git a/src/service/rooms/edus/read_receipt/mod.rs b/src/service/rooms/edus/read_receipt/mod.rs index 9b2bcd94..85291182 100644 --- a/src/service/rooms/edus/read_receipt/mod.rs +++ b/src/service/rooms/edus/read_receipt/mod.rs @@ -3,7 +3,7 @@ mod data; pub use data::Data; use ruma::{events::receipt::ReceiptEvent, serde::Raw, OwnedUserId, RoomId, UserId}; -use crate::Result; +use crate::{services, Result}; pub struct Service { pub db: &'static dyn Data, @@ -12,7 +12,10 @@ pub struct Service { impl Service { /// Replaces the previous read receipt. pub fn readreceipt_update(&self, user_id: &UserId, room_id: &RoomId, event: ReceiptEvent) -> Result<()> { - self.db.readreceipt_update(user_id, room_id, event) + self.db.readreceipt_update(user_id, room_id, event)?; + services().sending.flush_room(room_id)?; + + Ok(()) } /// Returns an iterator over the most recent read_receipts in a room that