diff options
| author | Owen Jacobson <owen@grimoire.ca> | 2024-09-13 22:30:02 -0400 |
|---|---|---|
| committer | Owen Jacobson <owen@grimoire.ca> | 2024-09-13 23:12:31 -0400 |
| commit | 407ca8df6284ce1a4c649b018c7326fd195bbd26 (patch) | |
| tree | 876091c17efbd765a4c7ef339548c0ff4dfb96d5 /src/channel/repo | |
| parent | 388a3d5a925aef7ff39339454ae0d720e05f038e (diff) | |
Support Last-Event-Id as a method of resuming channel events after a disconnect
Diffstat (limited to 'src/channel/repo')
| -rw-r--r-- | src/channel/repo/messages.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/channel/repo/messages.rs b/src/channel/repo/messages.rs index fe833b6..b465f61 100644 --- a/src/channel/repo/messages.rs +++ b/src/channel/repo/messages.rs @@ -73,6 +73,7 @@ impl<'c> Messages<'c> { pub async fn for_replay( &mut self, channel: &ChannelId, + resume_at: Option<&DateTime>, ) -> Result<Vec<BroadcastMessage>, BoxedError> { let messages = sqlx::query!( r#" @@ -85,9 +86,11 @@ impl<'c> Messages<'c> { from message join login on message.sender = login.id where channel = $1 + and coalesce(sent_at > $2, true) order by sent_at asc "#, channel, + resume_at, ) .map(|row| BroadcastMessage { id: row.id, |
