Add new messaging WorkerTask

This commit is contained in:
2024-05-10 22:16:49 +02:00
parent 692a71faef
commit e3a6ec9858
3 changed files with 47 additions and 7 deletions

View File

@@ -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]

View File

@@ -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 {

View File

@@ -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<EditInfo>),
Init(Sender<anyhow::Result<()>>),
Login(LoginStyle, Sender<anyhow::Result<()>>),
RunForever(Sender<()>),
GetDisplayName(Sender<anyhow::Result<Option<String>>>),
GetAvatar(Sender<anyhow::Result<Option<Vec<u8>>>>),
GetRoomAvatar(OwnedRoomId, Sender<anyhow::Result<Option<Vec<u8>>>>),
GetRoomMembers(OwnedRoomId, Sender<anyhow::Result<Vec<RoomMember>>>),
GetRoomMemberAvatar(
OwnedRoomId,
OwnedUserId,
Sender<anyhow::Result<Option<Vec<u8>>>>,
),
}
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(),
}
}
}