diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/message/event.rs | 6 | ||||
| -rw-r--r-- | src/message/history.rs | 1 | ||||
| -rw-r--r-- | src/message/repo.rs | 36 | ||||
| -rw-r--r-- | src/message/snapshot.rs | 4 |
4 files changed, 12 insertions, 35 deletions
diff --git a/src/message/event.rs b/src/message/event.rs index 9f49a32..1cd5847 100644 --- a/src/message/event.rs +++ b/src/message/event.rs @@ -1,8 +1,5 @@ use super::{snapshot::Message, Id}; -use crate::{ - channel::Channel, - event::{Instant, Sequenced}, -}; +use crate::event::{Instant, Sequenced}; #[derive(Clone, Debug, Eq, PartialEq, serde::Serialize)] #[serde(tag = "event", rename_all = "snake_case")] @@ -42,7 +39,6 @@ impl From<Sent> for Event { pub struct Deleted { #[serde(flatten)] pub instant: Instant, - pub channel: Channel, pub id: Id, } diff --git a/src/message/history.rs b/src/message/history.rs index b5886af..09e69b7 100644 --- a/src/message/history.rs +++ b/src/message/history.rs @@ -45,7 +45,6 @@ impl History { self.deleted.map(|instant| { Deleted { instant, - channel: self.message.channel.clone(), id: self.message.id.clone(), } .into() 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, diff --git a/src/message/snapshot.rs b/src/message/snapshot.rs index a8cf734..8c1e62a 100644 --- a/src/message/snapshot.rs +++ b/src/message/snapshot.rs @@ -2,13 +2,13 @@ use super::{ event::{Event, Sent}, Id, }; -use crate::{channel::Channel, event::Instant, login::Login}; +use crate::{channel, event::Instant, login::Login}; #[derive(Clone, Debug, Eq, PartialEq, serde::Serialize)] pub struct Message { #[serde(flatten)] pub sent: Instant, - pub channel: Channel, + pub channel: channel::Id, pub sender: Login, pub id: Id, pub body: String, |
