diff options
Diffstat (limited to 'src/message/repo.rs')
| -rw-r--r-- | src/message/repo.rs | 66 |
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, }, |
