From e3a6ec985859b7c6f99667c8adafe26284158de2 Mon Sep 17 00:00:00 2001 From: Adrien Date: Fri, 10 May 2024 22:16:49 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Add=20new=20messaging=20WorkerTask?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cargo.toml | 1 + src/domain/model/messaging_interface.rs | 3 +- .../messaging/matrix/worker_tasks.rs | 50 +++++++++++++++++-- 3 files changed, 47 insertions(+), 7 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 935d5b3..a00b679 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,6 +37,7 @@ tracing-web = "0.1.3" tracing-subscriber = "0.3.18" git-version = "0.3.9" async-trait = "0.1.80" +tokio-stream = "0.1.15" image = "0.25.1" [target.'cfg(target_family = "wasm")'.dependencies] diff --git a/src/domain/model/messaging_interface.rs b/src/domain/model/messaging_interface.rs index 9031e6d..fd8183b 100644 --- a/src/domain/model/messaging_interface.rs +++ b/src/domain/model/messaging_interface.rs @@ -3,14 +3,13 @@ use std::rc::Rc; use async_trait::async_trait; use tokio::sync::broadcast::Receiver; -use crate::infrastructure::messaging::matrix::worker_tasks::AccountEvent; - use super::{ common::{Avatar, UserId}, room::{Room, RoomId}, room_member::RoomMember, space::Space, }; +use crate::infrastructure::messaging::matrix::account_event::AccountEvent; #[async_trait(?Send)] pub trait AccountMessagingConsumerInterface { diff --git a/src/infrastructure/messaging/matrix/worker_tasks.rs b/src/infrastructure/messaging/matrix/worker_tasks.rs index e81d4e6..0c0494a 100644 --- a/src/infrastructure/messaging/matrix/worker_tasks.rs +++ b/src/infrastructure/messaging/matrix/worker_tasks.rs @@ -1,19 +1,32 @@ use std::fmt::{Debug, Formatter}; +use matrix_sdk::{ + room::RoomMember, + ruma::{OwnedRoomId, OwnedUserId}, +}; + use crate::utils::Sender; #[derive(Debug)] pub enum LoginStyle { - // SessionRestore(Session), Password(String, String), } pub enum WorkerTask { - // Init(AsyncProgramStore, ClientReply<()>), - // Init(ClientReply<()>), - Init(Sender<()>), - //Login(LoginStyle, ClientReply), + Init(Sender>), Login(LoginStyle, Sender>), + RunForever(Sender<()>), + GetDisplayName(Sender>>), + GetAvatar(Sender>>>), + + GetRoomAvatar(OwnedRoomId, Sender>>>), + GetRoomMembers(OwnedRoomId, Sender>>), + + GetRoomMemberAvatar( + OwnedRoomId, + OwnedUserId, + Sender>>>, + ), } impl Debug for WorkerTask { @@ -24,11 +37,38 @@ impl Debug for WorkerTask { .field(&format_args!("_")) // .field(&format_args!("_")) .finish(), + WorkerTask::RunForever(_) => f + .debug_tuple("WorkerTask::RunForever") + .field(&format_args!("_")) + .finish(), WorkerTask::Login(style, _) => f .debug_tuple("WorkerTask::Login") .field(style) // .field(&format_args!("_")) .finish(), + WorkerTask::GetDisplayName(_) => f + .debug_tuple("WorkerTask::GetDisplayName") + .field(&format_args!("_")) + .finish(), + WorkerTask::GetAvatar(_) => f + .debug_tuple("WorkerTask::GetAvatar") + .field(&format_args!("_")) + .finish(), + + WorkerTask::GetRoomAvatar(id, _) => f + .debug_tuple("WorkerTask::GetRoomAvatar") + .field(id) + .finish(), + WorkerTask::GetRoomMembers(id, _) => f + .debug_tuple("WorkerTask::GetRoomMembers") + .field(id) + .finish(), + + WorkerTask::GetRoomMemberAvatar(room_id, user_id, _) => f + .debug_tuple("WorkerTask::GetRoomMemberAvatar") + .field(room_id) + .field(user_id) + .finish(), } } }