Improvements overall
This commit is contained in:
+5
-13
@@ -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
@@ -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
@@ -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
@@ -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 {}
|
||||
|
||||
Reference in New Issue
Block a user