Handshake

This commit is contained in:
2025-09-15 18:23:27 +02:00
parent 0f3e0ac68a
commit 2b7abc505b
5 changed files with 78 additions and 15 deletions
+26 -12
View File
@@ -17,9 +17,7 @@ pub enum ClientMessage {
},
/// Delete a message (if allowed)
DeleteMessage {
message_id: usize,
},
DeleteMessage { message_id: usize },
}
/// Messages sent *from the server* to the client
@@ -27,9 +25,7 @@ pub enum ClientMessage {
#[serde(tag = "type", content = "params", rename_all = "snake_case")]
pub enum ServerMessage {
/// Successful authentication
Authenticated {
user_id: String,
},
Authenticated { user_id: String },
TempMessage {
message: String,
@@ -60,6 +56,16 @@ pub enum ServerMessage {
},
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "error", content = "message", rename_all = "snake_case")]
pub enum ResponseError {
InvalidRequest(String),
InvalidHandshake(String),
Unauthorized(String),
NotFound(String),
InternalError(String),
}
/// WebSocket wrapper
#[derive(Debug, Clone)]
pub enum WsMessage<T: Serialize + for<'de> Deserialize<'de>> {
@@ -94,13 +100,21 @@ pub mod data {
Text,
Voice,
}
}
pub mod handshake {
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "error", content = "message", rename_all = "snake_case")]
pub enum ResponseError {
InvalidRequest(String),
Unauthorized(String),
NotFound(String),
InternalError(String),
pub struct ServerDetails {
pub version: String,
pub name: String,
pub id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ClientDetails {
pub version: String,
pub auth_token: String,
}
}