summaryrefslogtreecommitdiff
path: root/src/database/chat.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/database/chat.rs')
-rw-r--r--src/database/chat.rs30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/database/chat.rs b/src/database/chat.rs
index 7364211..99ec86c 100644
--- a/src/database/chat.rs
+++ b/src/database/chat.rs
@@ -61,9 +61,10 @@ impl Database {
);
",
)?;
+
let row = stmt.query_map([user_id], |row| {
- let room_id = row.get(0)?;
- let name = row.get(1)?;
+ let room_id: u64 = row.get(0)?;
+ let name: String = row.get(1)?;
let mut stmt2 = self.0.prepare(
"
@@ -72,20 +73,19 @@ impl Database {
"
)?;
- let mut users = Vec::new();
- let _ = stmt2.query_map([room_id], |row2| {
- let user_id = row2.get(0)?;
- users.push(user_id);
- Ok(())
- })?;
+ let users = stmt2.query_map([room_id], |row2| {
+ Ok(row2.get(0)?)
+ })?.into_iter().flatten().collect();
let room = ChatRoom {
room_id,
users,
name
};
+
Ok(room)
})?;
+
Ok(row.into_iter().flatten().collect())
}
@@ -158,8 +158,8 @@ impl Database {
let msg = stmt.query_row((user_id, room_id, date, content), |row| {
let message_id = row.get(0)?;
- let room_id = row.get(1)?;
- let user_id = row.get(2)?;
+ let user_id = row.get(1)?;
+ let room_id = row.get(2)?;
let date = row.get(3)?;
let content = row.get(4)?;
@@ -182,17 +182,17 @@ impl Database {
"
SELECT * FROM chat_messages
WHERE room_id = ?
- AND message_id < newest_message
- ORDER BY message_id ASC
+ AND message_id < ?
+ ORDER BY message_id DESC
LIMIT ?
OFFSET ?
"
)?;
- let messages = stmt.query_map((room_id, 20, 20 * page), |row| {
+ let messages = stmt.query_map((room_id, newest_message, 20, 20 * page), |row| {
let message_id = row.get(0)?;
- let room_id = row.get(1)?;
- let user_id = row.get(2)?;
+ let user_id = row.get(1)?;
+ let room_id = row.get(2)?;
let date = row.get(3)?;
let content = row.get(4)?;