From bf677e1f9ce07e2fa8971c15b9a082cddbb40dec Mon Sep 17 00:00:00 2001 From: cel 🌸 Date: Wed, 26 Mar 2025 15:29:11 +0000 Subject: refactor(filament): split logic into different files --- filamento/src/logic/disconnect.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 filamento/src/logic/disconnect.rs (limited to 'filamento/src/logic/disconnect.rs') diff --git a/filamento/src/logic/disconnect.rs b/filamento/src/logic/disconnect.rs new file mode 100644 index 0000000..241c3e6 --- /dev/null +++ b/filamento/src/logic/disconnect.rs @@ -0,0 +1,18 @@ +use lampada::Connected; +use stanza::client::Stanza; + +use crate::{UpdateMessage, presence::Offline}; + +use super::ClientLogic; + +pub async fn handle_disconnect(logic: ClientLogic, connection: Connected) { + // TODO: be able to set offline status message + let offline_presence: stanza::client::presence::Presence = Offline::default().into_stanza(None); + let stanza = Stanza::Presence(offline_presence); + // TODO: timeout and error check + connection.write_handle().write(stanza).await; + let _ = logic + .update_sender() + .send(UpdateMessage::Offline(Offline::default())) + .await; +} -- cgit