2 extern crate strum_macros;
4 use crate::chat_server::ChatServer;
6 use background_jobs::QueueHandle;
7 use lemmy_db_queries::DbPool;
8 use lemmy_utils::LemmyError;
18 pub struct LemmyContext {
20 pub chat_server: Addr<ChatServer>,
22 pub activity_queue: QueueHandle,
28 chat_server: Addr<ChatServer>,
30 activity_queue: QueueHandle,
39 pub fn pool(&self) -> &DbPool {
42 pub fn chat_server(&self) -> &Addr<ChatServer> {
45 pub fn client(&self) -> &Client {
48 pub fn activity_queue(&self) -> &QueueHandle {
53 impl Clone for LemmyContext {
54 fn clone(&self) -> Self {
56 pool: self.pool.clone(),
57 chat_server: self.chat_server.clone(),
58 client: self.client.clone(),
59 activity_queue: self.activity_queue.clone(),
65 struct WebsocketResponse<T> {
70 pub fn serialize_websocket_message<OP, Response>(
73 ) -> Result<String, LemmyError>
78 let response = WebsocketResponse {
82 Ok(serde_json::to_string(&response)?)
85 #[derive(EnumString, ToString, Debug, Clone)]
86 pub enum UserOperation {
106 MarkPersonMentionAsRead,
120 MarkPrivateMessageAsRead,
133 #[derive(EnumString, ToString, Debug, Clone)]
134 pub enum UserOperationCrud {
164 CreatePrivateMessage,
167 DeletePrivateMessage,
170 pub trait OperationType {}
172 impl OperationType for UserOperationCrud {}
174 impl OperationType for UserOperation {}