From 89a919ce751878013c9f2b8a187052227b9f8038 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Sun, 31 Mar 2024 17:06:59 -0700 Subject: [PATCH] move read_receipt feature up one level out of rooms.edus. Signed-off-by: Jason Volk --- src/api/client_server/read_marker.rs | 6 ++---- src/api/client_server/sync.rs | 1 - src/api/server_server.rs | 1 - src/database/key_value/rooms/edus/mod.rs | 1 - src/database/key_value/rooms/mod.rs | 1 + src/database/key_value/rooms/{edus => }/read_receipt.rs | 2 +- src/service/mod.rs | 6 +++--- src/service/rooms/edus/mod.rs | 4 +--- src/service/rooms/mod.rs | 3 +++ src/service/rooms/{edus => }/read_receipt/data.rs | 0 src/service/rooms/{edus => }/read_receipt/mod.rs | 0 src/service/rooms/timeline/mod.rs | 1 - src/service/sending/mod.rs | 1 - 13 files changed, 11 insertions(+), 16 deletions(-) rename src/database/key_value/rooms/{edus => }/read_receipt.rs (98%) rename src/service/rooms/{edus => }/read_receipt/data.rs (100%) rename src/service/rooms/{edus => }/read_receipt/mod.rs (100%) diff --git a/src/api/client_server/read_marker.rs b/src/api/client_server/read_marker.rs index f68463d6..607b5aba 100644 --- a/src/api/client_server/read_marker.rs +++ b/src/api/client_server/read_marker.rs @@ -59,7 +59,6 @@ pub async fn set_read_marker_route(body: Ruma) -> }; services() .rooms - .edus .read_receipt .private_read_set(&body.room_id, sender_user, count)?; } @@ -80,7 +79,7 @@ pub async fn set_read_marker_route(body: Ruma) -> let mut receipt_content = BTreeMap::new(); receipt_content.insert(event.to_owned(), receipts); - services().rooms.edus.read_receipt.readreceipt_update( + services().rooms.read_receipt.readreceipt_update( sender_user, &body.room_id, ruma::events::receipt::ReceiptEvent { @@ -138,7 +137,7 @@ pub async fn create_receipt_route(body: Ruma) -> Re let mut receipt_content = BTreeMap::new(); receipt_content.insert(body.event_id.clone(), receipts); - services().rooms.edus.read_receipt.readreceipt_update( + services().rooms.read_receipt.readreceipt_update( sender_user, &body.room_id, ruma::events::receipt::ReceiptEvent { @@ -164,7 +163,6 @@ pub async fn create_receipt_route(body: Ruma) -> Re }; services() .rooms - .edus .read_receipt .private_read_set(&body.room_id, sender_user, count)?; }, diff --git a/src/api/client_server/sync.rs b/src/api/client_server/sync.rs index b8244d73..974cb1d5 100644 --- a/src/api/client_server/sync.rs +++ b/src/api/client_server/sync.rs @@ -997,7 +997,6 @@ async fn load_joined_room( let mut edus: Vec<_> = services() .rooms - .edus .read_receipt .readreceipts_since(room_id, since) .filter_map(Result::ok) // Filter out buggy events diff --git a/src/api/server_server.rs b/src/api/server_server.rs index ca45c40e..b8ccebbe 100644 --- a/src/api/server_server.rs +++ b/src/api/server_server.rs @@ -386,7 +386,6 @@ pub async fn send_transaction_message_route( }; services() .rooms - .edus .read_receipt .readreceipt_update(&user_id, &room_id, event)?; } else { diff --git a/src/database/key_value/rooms/edus/mod.rs b/src/database/key_value/rooms/edus/mod.rs index 7abf946f..60809934 100644 --- a/src/database/key_value/rooms/edus/mod.rs +++ b/src/database/key_value/rooms/edus/mod.rs @@ -1,5 +1,4 @@ mod presence; -mod read_receipt; use crate::{database::KeyValueDatabase, service}; diff --git a/src/database/key_value/rooms/mod.rs b/src/database/key_value/rooms/mod.rs index e7b53d30..04e73289 100644 --- a/src/database/key_value/rooms/mod.rs +++ b/src/database/key_value/rooms/mod.rs @@ -6,6 +6,7 @@ mod lazy_load; mod metadata; mod outlier; mod pdu_metadata; +mod read_receipt; mod search; mod short; mod state; diff --git a/src/database/key_value/rooms/edus/read_receipt.rs b/src/database/key_value/rooms/read_receipt.rs similarity index 98% rename from src/database/key_value/rooms/edus/read_receipt.rs rename to src/database/key_value/rooms/read_receipt.rs index 4f6ad3af..63fa2520 100644 --- a/src/database/key_value/rooms/edus/read_receipt.rs +++ b/src/database/key_value/rooms/read_receipt.rs @@ -4,7 +4,7 @@ use ruma::{events::receipt::ReceiptEvent, serde::Raw, CanonicalJsonObject, Owned use crate::{database::KeyValueDatabase, service, services, utils, Error, Result}; -impl service::rooms::edus::read_receipt::Data for KeyValueDatabase { +impl service::rooms::read_receipt::Data for KeyValueDatabase { fn readreceipt_update(&self, user_id: &UserId, room_id: &RoomId, event: ReceiptEvent) -> Result<()> { let mut prefix = room_id.as_bytes().to_vec(); prefix.push(0xFF); diff --git a/src/service/mod.rs b/src/service/mod.rs index be7c9fd3..5fd0492f 100644 --- a/src/service/mod.rs +++ b/src/service/mod.rs @@ -73,9 +73,6 @@ impl Services<'_> { presence: rooms::edus::presence::Service { db, }, - read_receipt: rooms::edus::read_receipt::Service { - db, - }, typing: rooms::edus::typing::Service { typing: RwLock::new(BTreeMap::new()), last_typing_update: RwLock::new(BTreeMap::new()), @@ -96,6 +93,9 @@ impl Services<'_> { pdu_metadata: rooms::pdu_metadata::Service { db, }, + read_receipt: rooms::read_receipt::Service { + db, + }, search: rooms::search::Service { db, }, diff --git a/src/service/rooms/edus/mod.rs b/src/service/rooms/edus/mod.rs index 6bedd16d..e73d5bb8 100644 --- a/src/service/rooms/edus/mod.rs +++ b/src/service/rooms/edus/mod.rs @@ -1,11 +1,9 @@ pub mod presence; -pub mod read_receipt; pub mod typing; -pub trait Data: presence::Data + read_receipt::Data + 'static {} +pub trait Data: presence::Data + 'static {} pub struct Service { pub presence: presence::Service, - pub read_receipt: read_receipt::Service, pub typing: typing::Service, } diff --git a/src/service/rooms/mod.rs b/src/service/rooms/mod.rs index 668efee5..8dec1e9e 100644 --- a/src/service/rooms/mod.rs +++ b/src/service/rooms/mod.rs @@ -7,6 +7,7 @@ pub mod lazy_loading; pub mod metadata; pub mod outlier; pub mod pdu_metadata; +pub mod read_receipt; pub mod search; pub mod short; pub mod spaces; @@ -27,6 +28,7 @@ pub trait Data: + metadata::Data + outlier::Data + pdu_metadata::Data + + read_receipt::Data + search::Data + short::Data + state::Data @@ -49,6 +51,7 @@ pub struct Service { pub metadata: metadata::Service, pub outlier: outlier::Service, pub pdu_metadata: pdu_metadata::Service, + pub read_receipt: read_receipt::Service, pub search: search::Service, pub short: short::Service, pub state: state::Service, diff --git a/src/service/rooms/edus/read_receipt/data.rs b/src/service/rooms/read_receipt/data.rs similarity index 100% rename from src/service/rooms/edus/read_receipt/data.rs rename to src/service/rooms/read_receipt/data.rs diff --git a/src/service/rooms/edus/read_receipt/mod.rs b/src/service/rooms/read_receipt/mod.rs similarity index 100% rename from src/service/rooms/edus/read_receipt/mod.rs rename to src/service/rooms/read_receipt/mod.rs diff --git a/src/service/rooms/timeline/mod.rs b/src/service/rooms/timeline/mod.rs index 68a65991..8912aab6 100644 --- a/src/service/rooms/timeline/mod.rs +++ b/src/service/rooms/timeline/mod.rs @@ -296,7 +296,6 @@ impl Service { // appending fails services() .rooms - .edus .read_receipt .private_read_set(&pdu.room_id, &pdu.sender, count1)?; services() diff --git a/src/service/sending/mod.rs b/src/service/sending/mod.rs index 1f3d19ea..665e4126 100644 --- a/src/service/sending/mod.rs +++ b/src/service/sending/mod.rs @@ -521,7 +521,6 @@ pub fn select_edus_receipts( ) -> Result { for r in services() .rooms - .edus .read_receipt .readreceipts_since(room_id, since) {