From 0ba8d1318dca7483cb15c7e7cb785430c8b901ee Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Sun, 31 Mar 2024 17:35:13 -0700 Subject: [PATCH] move presence up two levels out of rooms.edus and rooms. Signed-off-by: Jason Volk --- src/api/client_server/presence.rs | 4 +--- src/api/client_server/profile.rs | 4 ---- src/api/client_server/sync.rs | 4 ---- src/api/server_server.rs | 2 +- src/database/key_value/mod.rs | 1 + src/database/key_value/{rooms/edus => }/presence.rs | 4 ++-- src/database/key_value/rooms/edus/mod.rs | 5 ----- src/database/key_value/rooms/mod.rs | 1 - src/database/mod.rs | 2 +- src/service/mod.rs | 11 ++++++----- src/service/{rooms/edus => }/presence/data.rs | 0 src/service/{rooms/edus => }/presence/mod.rs | 4 +--- src/service/rooms/edus/mod.rs | 7 ------- src/service/rooms/mod.rs | 3 --- src/service/sending/mod.rs | 2 -- 15 files changed, 13 insertions(+), 41 deletions(-) rename src/database/key_value/{rooms/edus => }/presence.rs (97%) delete mode 100644 src/database/key_value/rooms/edus/mod.rs rename src/service/{rooms/edus => }/presence/data.rs (100%) rename src/service/{rooms/edus => }/presence/mod.rs (98%) delete mode 100644 src/service/rooms/edus/mod.rs diff --git a/src/api/client_server/presence.rs b/src/api/client_server/presence.rs index bde8d2bd..24ff6d01 100644 --- a/src/api/client_server/presence.rs +++ b/src/api/client_server/presence.rs @@ -19,7 +19,7 @@ pub async fn set_presence_route(body: Ruma) -> Result for room_id in services().rooms.state_cache.rooms_joined(sender_user) { let room_id = room_id?; - services().rooms.edus.presence.set_presence( + services().presence.set_presence( &room_id, sender_user, body.presence.clone(), @@ -54,8 +54,6 @@ pub async fn get_presence_route(body: Ruma) -> Result let room_id = room_id?; if let Some(presence) = services() - .rooms - .edus .presence .get_presence(&room_id, sender_user)? { diff --git a/src/api/client_server/profile.rs b/src/api/client_server/profile.rs index 4a51c520..846b6144 100644 --- a/src/api/client_server/profile.rs +++ b/src/api/client_server/profile.rs @@ -88,8 +88,6 @@ pub async fn set_displayname_route( if services().globals.allow_local_presence() { // Presence update services() - .rooms - .edus .presence .ping_presence(sender_user, PresenceState::Online)?; } @@ -229,8 +227,6 @@ pub async fn set_avatar_url_route(body: Ruma) -> Re if services().globals.allow_local_presence() { // Presence update services() - .rooms - .edus .presence .ping_presence(sender_user, PresenceState::Online)?; } diff --git a/src/api/client_server/sync.rs b/src/api/client_server/sync.rs index 24b1b596..6c1db3b0 100644 --- a/src/api/client_server/sync.rs +++ b/src/api/client_server/sync.rs @@ -173,8 +173,6 @@ async fn sync_helper( // Presence update if services().globals.allow_local_presence() { services() - .rooms - .edus .presence .ping_presence(&sender_user, body.set_presence)?; } @@ -531,8 +529,6 @@ async fn process_room_presence_updates( ) -> Result<()> { // Take presence updates from this room for (user_id, _, presence_event) in services() - .rooms - .edus .presence .presence_since(room_id, since) { diff --git a/src/api/server_server.rs b/src/api/server_server.rs index 5f78e18a..350529f0 100644 --- a/src/api/server_server.rs +++ b/src/api/server_server.rs @@ -339,7 +339,7 @@ pub async fn send_transaction_message_route( for update in presence.push { for room_id in services().rooms.state_cache.rooms_joined(&update.user_id) { - services().rooms.edus.presence.set_presence( + services().presence.set_presence( &room_id?, &update.user_id, update.presence.clone(), diff --git a/src/database/key_value/mod.rs b/src/database/key_value/mod.rs index c4496af8..4391cac5 100644 --- a/src/database/key_value/mod.rs +++ b/src/database/key_value/mod.rs @@ -5,6 +5,7 @@ mod globals; mod key_backups; mod media; //mod pdu; +mod presence; mod pusher; mod rooms; mod sending; diff --git a/src/database/key_value/rooms/edus/presence.rs b/src/database/key_value/presence.rs similarity index 97% rename from src/database/key_value/rooms/edus/presence.rs rename to src/database/key_value/presence.rs index b3e458fc..e26765f0 100644 --- a/src/database/key_value/rooms/edus/presence.rs +++ b/src/database/key_value/presence.rs @@ -5,13 +5,13 @@ use tracing::error; use crate::{ database::KeyValueDatabase, - service::{self, rooms::edus::presence::Presence}, + service::{self, presence::Presence}, services, utils::{self, user_id_from_bytes}, Error, Result, }; -impl service::rooms::edus::presence::Data for KeyValueDatabase { +impl service::presence::Data for KeyValueDatabase { fn get_presence(&self, room_id: &RoomId, user_id: &UserId) -> Result> { let key = presence_key(room_id, user_id); diff --git a/src/database/key_value/rooms/edus/mod.rs b/src/database/key_value/rooms/edus/mod.rs deleted file mode 100644 index 60809934..00000000 --- a/src/database/key_value/rooms/edus/mod.rs +++ /dev/null @@ -1,5 +0,0 @@ -mod presence; - -use crate::{database::KeyValueDatabase, service}; - -impl service::rooms::edus::Data for KeyValueDatabase {} diff --git a/src/database/key_value/rooms/mod.rs b/src/database/key_value/rooms/mod.rs index 04e73289..087f2711 100644 --- a/src/database/key_value/rooms/mod.rs +++ b/src/database/key_value/rooms/mod.rs @@ -1,7 +1,6 @@ mod alias; mod auth_chain; mod directory; -mod edus; mod lazy_load; mod metadata; mod outlier; diff --git a/src/database/mod.rs b/src/database/mod.rs index 7d884fac..cf0a1d15 100644 --- a/src/database/mod.rs +++ b/src/database/mod.rs @@ -35,7 +35,7 @@ use tokio::{ use tracing::{debug, error, info, warn}; use crate::{ - service::rooms::{edus::presence::presence_handler, timeline::PduCount}, + service::{presence::presence_handler, rooms::timeline::PduCount}, services, utils, Config, Error, PduEvent, Result, Services, SERVICES, }; diff --git a/src/service/mod.rs b/src/service/mod.rs index cc5d4660..450e7969 100644 --- a/src/service/mod.rs +++ b/src/service/mod.rs @@ -15,6 +15,7 @@ pub(crate) mod globals; pub(crate) mod key_backups; pub(crate) mod media; pub(crate) mod pdu; +pub(crate) mod presence; pub(crate) mod pusher; pub(crate) mod rooms; pub(crate) mod sending; @@ -30,6 +31,7 @@ pub struct Services<'a> { pub uiaa: uiaa::Service, pub users: users::Service, pub account_data: account_data::Service, + pub presence: presence::Service, pub admin: Arc, pub globals: globals::Service<'a>, pub key_backups: key_backups::Service, @@ -46,6 +48,7 @@ impl Services<'_> { + uiaa::Data + users::Data + account_data::Data + + presence::Data + globals::Data + key_backups::Data + media::Data @@ -69,11 +72,6 @@ impl Services<'_> { directory: rooms::directory::Service { db, }, - edus: rooms::edus::Service { - presence: rooms::edus::presence::Service { - db, - }, - }, event_handler: rooms::event_handler::Service, lazy_loading: rooms::lazy_loading::Service { db, @@ -152,6 +150,9 @@ impl Services<'_> { account_data: account_data::Service { db, }, + presence: presence::Service { + db, + }, admin: admin::Service::build(), key_backups: key_backups::Service { db, diff --git a/src/service/rooms/edus/presence/data.rs b/src/service/presence/data.rs similarity index 100% rename from src/service/rooms/edus/presence/data.rs rename to src/service/presence/data.rs diff --git a/src/service/rooms/edus/presence/mod.rs b/src/service/presence/mod.rs similarity index 98% rename from src/service/rooms/edus/presence/mod.rs rename to src/service/presence/mod.rs index f066cc70..64c97e1f 100644 --- a/src/service/rooms/edus/presence/mod.rs +++ b/src/service/presence/mod.rs @@ -144,8 +144,6 @@ fn process_presence_timer(user_id: &OwnedUserId) -> Result<()> { for room_id in services().rooms.state_cache.rooms_joined(user_id) { let presence_event = services() - .rooms - .edus .presence .get_presence(&room_id?, user_id)?; @@ -168,7 +166,7 @@ fn process_presence_timer(user_id: &OwnedUserId) -> Result<()> { if let Some(new_state) = new_state { for room_id in services().rooms.state_cache.rooms_joined(user_id) { - services().rooms.edus.presence.set_presence( + services().presence.set_presence( &room_id?, user_id, new_state.clone(), diff --git a/src/service/rooms/edus/mod.rs b/src/service/rooms/edus/mod.rs deleted file mode 100644 index 5626065d..00000000 --- a/src/service/rooms/edus/mod.rs +++ /dev/null @@ -1,7 +0,0 @@ -pub mod presence; - -pub trait Data: presence::Data + 'static {} - -pub struct Service { - pub presence: presence::Service, -} diff --git a/src/service/rooms/mod.rs b/src/service/rooms/mod.rs index 63eb7da6..baf3f7b5 100644 --- a/src/service/rooms/mod.rs +++ b/src/service/rooms/mod.rs @@ -1,7 +1,6 @@ pub mod alias; pub mod auth_chain; pub mod directory; -pub mod edus; pub mod event_handler; pub mod lazy_loading; pub mod metadata; @@ -24,7 +23,6 @@ pub trait Data: alias::Data + auth_chain::Data + directory::Data - + edus::Data + lazy_loading::Data + metadata::Data + outlier::Data @@ -46,7 +44,6 @@ pub struct Service { pub alias: alias::Service, pub auth_chain: auth_chain::Service, pub directory: directory::Service, - pub edus: edus::Service, pub event_handler: event_handler::Service, pub lazy_loading: lazy_loading::Service, pub metadata: metadata::Service, diff --git a/src/service/sending/mod.rs b/src/service/sending/mod.rs index 665e4126..fb052ef5 100644 --- a/src/service/sending/mod.rs +++ b/src/service/sending/mod.rs @@ -484,8 +484,6 @@ pub fn select_edus_presence( // Look for presence updates in this room let mut presence_updates = Vec::new(); for (user_id, count, presence_event) in services() - .rooms - .edus .presence .presence_since(room_id, since) {