summaryrefslogtreecommitdiff
path: root/src/message/app.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/message/app.rs')
-rw-r--r--src/message/app.rs36
1 files changed, 21 insertions, 15 deletions
diff --git a/src/message/app.rs b/src/message/app.rs
index 9792c8f..bdc2164 100644
--- a/src/message/app.rs
+++ b/src/message/app.rs
@@ -4,8 +4,8 @@ use sqlx::sqlite::SqlitePool;
use super::{Body, Id, Message, repo::Provider as _};
use crate::{
- channel::{self, repo::Provider as _},
clock::DateTime,
+ conversation::{self, repo::Provider as _},
db::NotFound as _,
event::{Broadcaster, Event, Sequence, repo::Provider as _},
name,
@@ -24,23 +24,29 @@ impl<'a> Messages<'a> {
pub async fn send(
&self,
- channel: &channel::Id,
+ conversation: &conversation::Id,
sender: &User,
sent_at: &DateTime,
body: &Body,
) -> Result<Message, SendError> {
- let to_not_found = || SendError::ChannelNotFound(channel.clone());
- let to_deleted = || SendError::ChannelDeleted(channel.clone());
+ let to_not_found = || SendError::ConversationNotFound(conversation.clone());
+ let to_deleted = || SendError::ConversationDeleted(conversation.clone());
let mut tx = self.db.begin().await?;
- let channel = tx.channels().by_id(channel).await.not_found(to_not_found)?;
+ let conversation = tx
+ .conversations()
+ .by_id(conversation)
+ .await
+ .not_found(to_not_found)?;
// Ordering: don't bother allocating a sequence number before we know the channel might
// exist.
let sent = tx.sequence().next(sent_at).await?;
- let channel = channel.as_of(sent).ok_or_else(to_deleted)?;
-
- let message = tx.messages().create(&channel, sender, &sent, body).await?;
+ let conversation = conversation.as_of(sent).ok_or_else(to_deleted)?;
+ let message = tx
+ .messages()
+ .create(&conversation, sender, &sent, body)
+ .await?;
tx.commit().await?;
self.events
@@ -128,19 +134,19 @@ impl<'a> Messages<'a> {
#[derive(Debug, thiserror::Error)]
pub enum SendError {
- #[error("channel {0} not found")]
- ChannelNotFound(channel::Id),
- #[error("channel {0} deleted")]
- ChannelDeleted(channel::Id),
+ #[error("conversation {0} not found")]
+ ConversationNotFound(conversation::Id),
+ #[error("conversation {0} deleted")]
+ ConversationDeleted(conversation::Id),
#[error(transparent)]
Database(#[from] sqlx::Error),
#[error(transparent)]
Name(#[from] name::Error),
}
-impl From<channel::repo::LoadError> for SendError {
- fn from(error: channel::repo::LoadError) -> Self {
- use channel::repo::LoadError;
+impl From<conversation::repo::LoadError> for SendError {
+ fn from(error: conversation::repo::LoadError) -> Self {
+ use conversation::repo::LoadError;
match error {
LoadError::Database(error) => error.into(),
LoadError::Name(error) => error.into(),