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<Response>(
72 ) -> Result<String, LemmyError>
76 let response = WebsocketResponse {
80 Ok(serde_json::to_string(&response)?)
83 #[derive(EnumString, ToString, Debug, Clone)]
84 pub enum UserOperation {
102 ResolveCommentReport,
120 GetFollowedCommunities,
124 MarkUserMentionAsRead,
141 CreatePrivateMessage,
143 DeletePrivateMessage,
144 MarkPrivateMessageAsRead,