diff options
author | 2025-04-11 06:51:03 +0100 | |
---|---|---|
committer | 2025-04-11 06:52:15 +0100 | |
commit | 1e5d4b504901bbd8fbf884e0f006d5717e1bc88c (patch) | |
tree | daee0a4b5d6b07afdc7ee6c859157da2a7d30d91 /filamento/src/logic | |
parent | 113d9d9ce54528f1f0a782e867683074aaa43ee4 (diff) | |
download | luz-1e5d4b504901bbd8fbf884e0f006d5717e1bc88c.tar.gz luz-1e5d4b504901bbd8fbf884e0f006d5717e1bc88c.tar.bz2 luz-1e5d4b504901bbd8fbf884e0f006d5717e1bc88c.zip |
feat(filamento): `get_messages_with_users()`
Diffstat (limited to '')
-rw-r--r-- | filamento/src/logic/local_only.rs | 7 | ||||
-rw-r--r-- | filamento/src/logic/offline.rs | 6 | ||||
-rw-r--r-- | filamento/src/logic/online.rs | 11 |
3 files changed, 18 insertions, 6 deletions
diff --git a/filamento/src/logic/local_only.rs b/filamento/src/logic/local_only.rs index cabbef4..9db9d4d 100644 --- a/filamento/src/logic/local_only.rs +++ b/filamento/src/logic/local_only.rs @@ -42,6 +42,13 @@ pub async fn handle_get_messages<Fs: FileStore + Clone>( Ok(logic.db().read_message_history(jid).await?) } +pub async fn handle_get_messages_with_users<Fs: FileStore + Clone>( + logic: &ClientLogic<Fs>, + jid: JID, +) -> Result<Vec<(Message, User)>, DatabaseError> { + Ok(logic.db().read_message_history_with_users(jid).await?) +} + pub async fn handle_delete_chat<Fs: FileStore + Clone>( logic: &ClientLogic<Fs>, jid: JID, diff --git a/filamento/src/logic/offline.rs b/filamento/src/logic/offline.rs index 4f5df36..9f1a3bc 100644 --- a/filamento/src/logic/offline.rs +++ b/filamento/src/logic/offline.rs @@ -23,7 +23,7 @@ use super::{ local_only::{ handle_delete_chat, handle_delete_messaage, handle_get_chat, handle_get_chats, handle_get_chats_ordered, handle_get_chats_ordered_with_latest_messages, - handle_get_messages, handle_get_user, + handle_get_messages, handle_get_messages_with_users, handle_get_user, }, }; @@ -88,6 +88,10 @@ pub async fn handle_offline_result<Fs: FileStore + Clone>( let messages = handle_get_messages(logic, jid).await; sender.send(messages); } + Command::GetMessagesWithUsers(jid, sender) => { + let messages = handle_get_messages_with_users(logic, jid).await; + sender.send(messages); + } Command::DeleteChat(jid, sender) => { let result = handle_delete_chat(logic, jid).await; sender.send(result); diff --git a/filamento/src/logic/online.rs b/filamento/src/logic/online.rs index 1023b79..2cf2d5c 100644 --- a/filamento/src/logic/online.rs +++ b/filamento/src/logic/online.rs @@ -22,12 +22,9 @@ use crate::{ }; use super::{ - ClientLogic, local_only::{ - handle_delete_chat, handle_delete_messaage, handle_get_chat, handle_get_chats, - handle_get_chats_ordered, handle_get_chats_ordered_with_latest_messages, - handle_get_messages, handle_get_user, - }, + handle_delete_chat, handle_delete_messaage, handle_get_chat, handle_get_chats, handle_get_chats_ordered, handle_get_chats_ordered_with_latest_messages, handle_get_messages, handle_get_messages_with_users, handle_get_user + }, ClientLogic }; pub async fn handle_online<Fs: FileStore + Clone>(logic: ClientLogic<Fs>, command: Command<Fs>, connection: Connected) { @@ -1058,6 +1055,10 @@ pub async fn handle_online_result<Fs: FileStore + Clone>( let messages = handle_get_messages(logic, jid).await; let _ = sender.send(messages); } + Command::GetMessagesWithUsers(jid, sender) => { + let messages = handle_get_messages_with_users(logic, jid).await; + sender.send(messages); + } Command::DeleteChat(jid, sender) => { let result = handle_delete_chat(logic, jid).await; let _ = sender.send(result); |