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;
17 pub struct LemmyContext {
19 pub chat_server: Addr<ChatServer>,
21 pub activity_queue: QueueHandle,
27 chat_server: Addr<ChatServer>,
29 activity_queue: QueueHandle,
38 pub fn pool(&self) -> &DbPool {
41 pub fn chat_server(&self) -> &Addr<ChatServer> {
44 pub fn client(&self) -> &Client {
47 pub fn activity_queue(&self) -> &QueueHandle {
52 impl Clone for LemmyContext {
53 fn clone(&self) -> Self {
55 pool: self.pool.clone(),
56 chat_server: self.chat_server.clone(),
57 client: self.client.clone(),
58 activity_queue: self.activity_queue.clone(),
64 struct WebsocketResponse<T> {
69 pub fn serialize_websocket_message<OP, Response>(
72 ) -> Result<String, LemmyError>
77 let response = WebsocketResponse {
81 Ok(serde_json::to_string(&response)?)
84 #[derive(EnumString, ToString, Debug, Clone)]
85 pub enum UserOperation {
103 GetFollowedCommunities,
106 MarkPersonMentionAsRead,
119 MarkPrivateMessageAsRead,
128 #[derive(EnumString, ToString, Debug, Clone)]
129 pub enum UserOperationCrud {
159 CreatePrivateMessage,
162 DeletePrivateMessage,
165 pub trait OperationType {}
167 impl OperationType for UserOperationCrud {}
169 impl OperationType for UserOperation {}