summaryrefslogtreecommitdiff
path: root/src/message/repo.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/message/repo.rs')
-rw-r--r--src/message/repo.rs66
1 files changed, 29 insertions, 37 deletions
diff --git a/src/message/repo.rs b/src/message/repo.rs
index e098fb2..0560f4a 100644
--- a/src/message/repo.rs
+++ b/src/message/repo.rs
@@ -38,6 +38,10 @@ impl<'c> Messages<'c> {
values ($1, $2, $3, $4, $5, $6)
returning
id as "id: Id",
+ channel as "channel: channel::Id",
+ sender as "sender: login::Id",
+ sent_at as "sent_at: DateTime",
+ sent_sequence as "sent_sequence: Sequence",
body
"#,
id,
@@ -49,9 +53,12 @@ impl<'c> Messages<'c> {
)
.map(|row| History {
message: Message {
- sent: *sent,
- channel: channel.id().clone(),
- sender: sender.clone(),
+ sent: Instant {
+ at: row.sent_at,
+ sequence: row.sent_sequence,
+ },
+ channel: row.channel,
+ sender: row.sender,
id: row.id,
body: row.body,
},
@@ -72,18 +79,16 @@ impl<'c> Messages<'c> {
let messages = sqlx::query!(
r#"
select
- message.channel as "channel: channel::Id",
- sender.id as "sender_id: login::Id",
- sender.name as "sender_name",
- message.id as "id: Id",
- message.body,
+ channel as "channel: channel::Id",
+ sender as "sender: login::Id",
+ id as "id: Id",
+ body,
sent_at as "sent_at: DateTime",
sent_sequence as "sent_sequence: Sequence"
from message
- join login as sender on message.sender = sender.id
- where message.channel = $1
- and coalesce(message.sent_sequence <= $2, true)
- order by message.sent_sequence
+ where channel = $1
+ and coalesce(sent_sequence <= $2, true)
+ order by sent_sequence
"#,
channel_id,
resume_at,
@@ -95,10 +100,7 @@ impl<'c> Messages<'c> {
sequence: row.sent_sequence,
},
channel: row.channel,
- sender: Login {
- id: row.sender_id,
- name: row.sender_name,
- },
+ sender: row.sender,
id: row.id,
body: row.body,
},
@@ -114,16 +116,14 @@ impl<'c> Messages<'c> {
let message = sqlx::query!(
r#"
select
- message.channel as "channel: channel::Id",
- sender.id as "sender_id: login::Id",
- sender.name as "sender_name",
- message.id as "id: Id",
- message.body,
+ channel as "channel: channel::Id",
+ sender as "sender: login::Id",
+ id as "id: Id",
+ body,
sent_at as "sent_at: DateTime",
sent_sequence as "sent_sequence: Sequence"
from message
- join login as sender on message.sender = sender.id
- where message.id = $1
+ where id = $1
"#,
message,
)
@@ -134,10 +134,7 @@ impl<'c> Messages<'c> {
sequence: row.sent_sequence,
},
channel: row.channel,
- sender: Login {
- id: row.sender_id,
- name: row.sender_name,
- },
+ sender: row.sender,
id: row.id,
body: row.body,
},
@@ -194,15 +191,13 @@ impl<'c> Messages<'c> {
let messages = sqlx::query!(
r#"
select
- message.channel as "channel: channel::Id",
- sender.id as "sender_id: login::Id",
- sender.name as "sender_name",
- message.id as "id: Id",
- message.body,
+ channel as "channel: channel::Id",
+ sender as "sender: login::Id",
+ id as "id: Id",
+ body,
sent_at as "sent_at: DateTime",
sent_sequence as "sent_sequence: Sequence"
from message
- join login as sender on message.sender = sender.id
where coalesce(message.sent_sequence > $1, true)
"#,
resume_at,
@@ -214,10 +209,7 @@ impl<'c> Messages<'c> {
sequence: row.sent_sequence,
},
channel: row.channel,
- sender: Login {
- id: row.sender_id,
- name: row.sender_name,
- },
+ sender: row.sender,
id: row.id,
body: row.body,
},