diff options
Diffstat (limited to 'src/channel/app.rs')
| -rw-r--r-- | src/channel/app.rs | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/channel/app.rs b/src/channel/app.rs index 70cda47..88f4170 100644 --- a/src/channel/app.rs +++ b/src/channel/app.rs @@ -3,8 +3,11 @@ use sqlx::sqlite::SqlitePool; use crate::{ clock::DateTime, - events::{broadcaster::Broadcaster, repo::message::Provider as _, types::ChannelEvent}, - repo::channel::{Channel, Provider as _}, + events::{broadcaster::Broadcaster, types::ChannelEvent}, + repo::{ + channel::{Channel, Provider as _}, + sequence::Provider as _, + }, }; pub struct Channels<'a> { @@ -19,9 +22,10 @@ impl<'a> Channels<'a> { pub async fn create(&self, name: &str, created_at: &DateTime) -> Result<Channel, CreateError> { let mut tx = self.db.begin().await?; + let created_sequence = tx.sequence().next().await?; let channel = tx .channels() - .create(name, created_at) + .create(name, created_at, created_sequence) .await .map_err(|err| CreateError::from_duplicate_name(err, name))?; tx.commit().await?; @@ -49,10 +53,10 @@ impl<'a> Channels<'a> { let mut events = Vec::with_capacity(expired.len()); for channel in expired { - let sequence = tx.message_events().assign_sequence(&channel).await?; + let deleted_sequence = tx.sequence().next().await?; let event = tx .channels() - .delete_expired(&channel, sequence, relative_to) + .delete(&channel, relative_to, deleted_sequence) .await?; events.push(event); } |
