Actual DM structure
This commit is contained in:
+2
-2
@@ -119,9 +119,9 @@ impl Server {
|
|||||||
client.send(types::ServerMessage::Authenticated {
|
client.send(types::ServerMessage::Authenticated {
|
||||||
uuid,
|
uuid,
|
||||||
messages: if let Some(i) = last_message {
|
messages: if let Some(i) = last_message {
|
||||||
self.wrap_err(&client, self.db.get_messages_after_id(i))?
|
self.wrap_err(&client, self.db.get_messages_after_id(uuid, i))?
|
||||||
} else {
|
} else {
|
||||||
self.wrap_err(&client, self.db.get_messages_after_id(0))?
|
self.wrap_err(&client, self.db.get_messages_after_id(uuid, 0))?
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
)?;
|
)?;
|
||||||
|
|||||||
@@ -104,15 +104,20 @@ impl Database {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Get all messages with an ID greater than the given one
|
/// Get all messages with an ID greater than the given one
|
||||||
pub fn get_messages_after_id(&self, message_id: usize) -> Result<Vec<Message>> {
|
pub fn get_messages_after_id(
|
||||||
|
&self,
|
||||||
|
channel_id: u32,
|
||||||
|
message_id: usize,
|
||||||
|
) -> Result<Vec<Message>> {
|
||||||
let mut stmt = self.0.prepare(
|
let mut stmt = self.0.prepare(
|
||||||
"SELECT id, channel_id, user_id, contents, timestamp
|
"SELECT id, channel_id, user_id, contents, timestamp
|
||||||
FROM chat
|
FROM chat
|
||||||
WHERE id > ?1
|
WHERE (channel_id = ?2 OR user_id = ?2)
|
||||||
ORDER BY id ASC",
|
AND id > ?1
|
||||||
|
ORDER BY id ASC;",
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
let rows = stmt.query_map(params![message_id], |row| {
|
let rows = stmt.query_map(params![message_id, channel_id], |row| {
|
||||||
Ok(Message {
|
Ok(Message {
|
||||||
id: row.get::<_, i64>(0)?,
|
id: row.get::<_, i64>(0)?,
|
||||||
channel_id: row.get::<_, u32>(1)?,
|
channel_id: row.get::<_, u32>(1)?,
|
||||||
|
|||||||
Reference in New Issue
Block a user