summaryrefslogtreecommitdiff
path: root/src/message/repo.rs
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2024-10-08 22:57:39 -0400
committerOwen Jacobson <owen@grimoire.ca>2024-10-09 11:45:31 -0400
commitda1810afc5a627a518131cfb0af0996c5ec60bcf (patch)
tree311cd4b3d58043231ff048d93f063cf3658e1bc3 /src/message/repo.rs
parent9e171096a72d3e63626df7b09970476aba28eb06 (diff)
Simplify channel IDs in events. Remove redundant ones.
Diffstat (limited to 'src/message/repo.rs')
-rw-r--r--src/message/repo.rs36
1 files changed, 9 insertions, 27 deletions
diff --git a/src/message/repo.rs b/src/message/repo.rs
index 5b199a7..e098fb2 100644
--- a/src/message/repo.rs
+++ b/src/message/repo.rs
@@ -2,7 +2,7 @@ use sqlx::{sqlite::Sqlite, SqliteConnection, Transaction};
use super::{snapshot::Message, History, Id};
use crate::{
- channel::{self, Channel},
+ channel,
clock::DateTime,
event::{Instant, ResumePoint, Sequence},
login::{self, Login},
@@ -50,10 +50,7 @@ impl<'c> Messages<'c> {
.map(|row| History {
message: Message {
sent: *sent,
- // Use "as created" here as we don't care about providing a perfectly up-to-date
- // representation of the channel. The `name` is informational (and the ID, which is
- // normative, is fixed over time).
- channel: channel.as_created(),
+ channel: channel.id().clone(),
sender: sender.clone(),
id: row.id,
body: row.body,
@@ -75,8 +72,7 @@ impl<'c> Messages<'c> {
let messages = sqlx::query!(
r#"
select
- channel.id as "channel_id: channel::Id",
- channel.name as "channel_name",
+ message.channel as "channel: channel::Id",
sender.id as "sender_id: login::Id",
sender.name as "sender_name",
message.id as "id: Id",
@@ -84,9 +80,8 @@ impl<'c> Messages<'c> {
sent_at as "sent_at: DateTime",
sent_sequence as "sent_sequence: Sequence"
from message
- join channel on message.channel = channel.id
join login as sender on message.sender = sender.id
- where channel.id = $1
+ where message.channel = $1
and coalesce(message.sent_sequence <= $2, true)
order by message.sent_sequence
"#,
@@ -99,10 +94,7 @@ impl<'c> Messages<'c> {
at: row.sent_at,
sequence: row.sent_sequence,
},
- channel: Channel {
- id: row.channel_id,
- name: row.channel_name,
- },
+ channel: row.channel,
sender: Login {
id: row.sender_id,
name: row.sender_name,
@@ -122,8 +114,7 @@ impl<'c> Messages<'c> {
let message = sqlx::query!(
r#"
select
- channel.id as "channel_id: channel::Id",
- channel.name as "channel_name",
+ message.channel as "channel: channel::Id",
sender.id as "sender_id: login::Id",
sender.name as "sender_name",
message.id as "id: Id",
@@ -131,7 +122,6 @@ impl<'c> Messages<'c> {
sent_at as "sent_at: DateTime",
sent_sequence as "sent_sequence: Sequence"
from message
- join channel on message.channel = channel.id
join login as sender on message.sender = sender.id
where message.id = $1
"#,
@@ -143,10 +133,7 @@ impl<'c> Messages<'c> {
at: row.sent_at,
sequence: row.sent_sequence,
},
- channel: Channel {
- id: row.channel_id,
- name: row.channel_name,
- },
+ channel: row.channel,
sender: Login {
id: row.sender_id,
name: row.sender_name,
@@ -207,8 +194,7 @@ impl<'c> Messages<'c> {
let messages = sqlx::query!(
r#"
select
- channel.id as "channel_id: channel::Id",
- channel.name as "channel_name",
+ message.channel as "channel: channel::Id",
sender.id as "sender_id: login::Id",
sender.name as "sender_name",
message.id as "id: Id",
@@ -216,7 +202,6 @@ impl<'c> Messages<'c> {
sent_at as "sent_at: DateTime",
sent_sequence as "sent_sequence: Sequence"
from message
- join channel on message.channel = channel.id
join login as sender on message.sender = sender.id
where coalesce(message.sent_sequence > $1, true)
"#,
@@ -228,10 +213,7 @@ impl<'c> Messages<'c> {
at: row.sent_at,
sequence: row.sent_sequence,
},
- channel: Channel {
- id: row.channel_id,
- name: row.channel_name,
- },
+ channel: row.channel,
sender: Login {
id: row.sender_id,
name: row.sender_name,