1 use crate::UserOperation;
2 use actix::{prelude::*, Recipient};
3 use lemmy_structs::{comment::CommentResponse, post::PostResponse};
4 use lemmy_utils::{CommunityId, ConnectionId, IPAddr, PostId, UserId};
5 use serde::{Deserialize, Serialize};
7 /// Chat server sends this messages to session
9 #[rtype(result = "()")]
10 pub struct WSMessage(pub String);
12 /// Message for chat server communications
14 /// New chat session is created
18 pub addr: Recipient<WSMessage>,
22 /// Session is disconnected
24 #[rtype(result = "()")]
25 pub struct Disconnect {
30 /// The messages sent to websocket clients
31 #[derive(Serialize, Deserialize, Message)]
32 #[rtype(result = "Result<String, std::convert::Infallible>")]
33 pub struct StandardMessage {
34 /// Id of the client session
41 #[rtype(result = "()")]
42 pub struct SendAllMessage<Response> {
43 pub op: UserOperation,
44 pub response: Response,
45 pub websocket_id: Option<ConnectionId>,
49 #[rtype(result = "()")]
50 pub struct SendUserRoomMessage<Response> {
51 pub op: UserOperation,
52 pub response: Response,
53 pub recipient_id: UserId,
54 pub websocket_id: Option<ConnectionId>,
58 #[rtype(result = "()")]
59 pub struct SendCommunityRoomMessage<Response> {
60 pub op: UserOperation,
61 pub response: Response,
62 pub community_id: CommunityId,
63 pub websocket_id: Option<ConnectionId>,
67 #[rtype(result = "()")]
69 pub op: UserOperation,
70 pub post: PostResponse,
71 pub websocket_id: Option<ConnectionId>,
75 #[rtype(result = "()")]
76 pub struct SendComment {
77 pub op: UserOperation,
78 pub comment: CommentResponse,
79 pub websocket_id: Option<ConnectionId>,
83 #[rtype(result = "()")]
84 pub struct JoinUserRoom {
90 #[rtype(result = "()")]
91 pub struct JoinCommunityRoom {
92 pub community_id: CommunityId,
97 #[rtype(result = "()")]
98 pub struct JoinPostRoom {
100 pub id: ConnectionId,
105 pub struct GetUsersOnline;
109 pub struct GetPostUsersOnline {
115 pub struct GetCommunityUsersOnline {
116 pub community_id: CommunityId,
119 #[derive(Message, Debug)]
120 #[rtype(result = "()")]
121 pub struct CaptchaItem {
124 pub expires: chrono::NaiveDateTime,
129 pub struct CheckCaptcha {