Improvements overall

This commit is contained in:
2025-09-15 17:43:12 +02:00
parent 50bc3a85ca
commit 0f3e0ac68a
4 changed files with 31 additions and 49 deletions
+5 -13
View File
@@ -24,7 +24,7 @@ pub fn send(
let msg = server.wrap_err(
&client,
server.db.messages_db.insert(
server.db.insert_message(
&channel_id,
"idk",
&contents,
@@ -42,22 +42,14 @@ pub fn send(
pub fn edit(
_server: &Arc<Server>,
_client: &Client,
channel_id: &str,
message_id: &str,
message_id: usize,
new_contents: &str,
) -> crate::Result<()> {
LOGGER.info(format!(
"EditMessage {message_id} in {channel_id}: {new_contents}"
));
LOGGER.info(format!("EditMessage {message_id}: {new_contents}"));
Ok(())
}
pub fn delete(
_server: &Arc<Server>,
_client: &Client,
channel_id: &str,
message_id: &str,
) -> crate::Result<()> {
LOGGER.info(format!("DeleteMessage {message_id} in {channel_id}"));
pub fn delete(_server: &Arc<Server>, _client: &Client, message_id: usize) -> crate::Result<()> {
LOGGER.info(format!("DeleteMessage {message_id}"));
Ok(())
}
+4 -6
View File
@@ -24,15 +24,13 @@ impl Server {
}
ClientMessage::EditMessage {
channel_id,
message_id,
new_contents,
} => message::edit(self, client, channel_id, message_id, new_contents)?,
} => message::edit(self, client, *message_id, new_contents)?,
ClientMessage::DeleteMessage {
channel_id,
message_id,
} => message::delete(self, client, channel_id, message_id)?,
ClientMessage::DeleteMessage { message_id } => {
message::delete(self, client, *message_id)?
}
},
WsMessage::Binary(b) => {
+3 -5
View File
@@ -12,15 +12,13 @@ pub enum ClientMessage {
/// Edit a message (if allowed)
EditMessage {
channel_id: String,
message_id: String,
message_id: usize,
new_contents: String,
},
/// Delete a message (if allowed)
DeleteMessage {
channel_id: String,
message_id: String,
message_id: usize,
},
}
@@ -46,7 +44,7 @@ pub enum ServerMessage {
/// A message was deleted
MessageDelete {
channel_id: String,
message_id: String,
message_id: usize,
},
/// Presence updates
+16 -22
View File
@@ -1,28 +1,14 @@
use crate::{ServerConfig, types::data::Message};
use rusqlite::{Connection, Result, params};
pub struct Database {
pub messages_db: MessagesDb,
}
pub struct Database(pub Connection);
// General use case
impl Database {
pub fn new(config: &ServerConfig) -> Option<Self> {
pub fn new(_config: &ServerConfig) -> Option<Self> {
let conn = Connection::open("main.db").ok()?;
let messages_db = MessagesDb(conn);
messages_db.init(config)?;
Some(Self { messages_db })
}
}
unsafe impl Send for Database {}
unsafe impl Sync for Database {}
pub struct MessagesDb(pub Connection);
impl MessagesDb {
pub fn init(&self, _config: &ServerConfig) -> Option<usize> {
self.0
.execute(
conn.execute(
"CREATE TABLE IF NOT EXISTS chat (
id INTEGER PRIMARY KEY AUTOINCREMENT,
channel_id TEXT NOT NULL,
@@ -32,11 +18,16 @@ impl MessagesDb {
)",
[],
)
.ok()
}
.ok()?;
Some(Database(conn))
}
}
// For chat messages
impl Database {
/// Insert a message into the DB
pub fn insert(
pub fn insert_message(
&self,
channel_id: &str,
user_id: &str,
@@ -61,7 +52,7 @@ impl MessagesDb {
}
/// Get a message by its ID
pub fn get_by_id(&self, message_id: usize) -> Result<Option<Message>> {
pub fn get_message_by_id(&self, message_id: usize) -> Result<Option<Message>> {
let mut stmt = self.0.prepare(
"SELECT id, channel_id, user_id, contents, timestamp
FROM chat
@@ -91,3 +82,6 @@ impl MessagesDb {
Ok(None)
}
}
unsafe impl Send for Database {}
unsafe impl Sync for Database {}