diff options
| author | Owen Jacobson <owen@grimoire.ca> | 2024-09-27 23:03:46 -0400 |
|---|---|---|
| committer | Owen Jacobson <owen@grimoire.ca> | 2024-09-28 01:00:12 -0400 |
| commit | 60b711c844f8624348d5d1dac3a625532a8e2a82 (patch) | |
| tree | a667cfa3833046425a87ec03c700d6124af70e4e /src/events/types.rs | |
| parent | 08c3a6e77a3f61ffc9643a5e1f840df9078d0b36 (diff) | |
Delete expired messages out of band.
Trying to reliably do expiry mid-request was causing some anomalies:
* Creating a channel with a dup name would fail, then succeed after listing channels.
It was very hard to reason about which operations needed to trigger expiry, to fix this "correctly," so now expiry runs on every request.
Diffstat (limited to 'src/events/types.rs')
| -rw-r--r-- | src/events/types.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/events/types.rs b/src/events/types.rs index 944321a..9a65207 100644 --- a/src/events/types.rs +++ b/src/events/types.rs @@ -119,6 +119,7 @@ impl ResumeElement for ChannelEvent { pub enum ChannelEventData { Created, Message(MessageEvent), + MessageDeleted(MessageDeletedEvent), } #[derive(Clone, Debug, Eq, PartialEq, serde::Serialize)] @@ -132,3 +133,14 @@ impl From<MessageEvent> for ChannelEventData { Self::Message(message) } } + +#[derive(Clone, Debug, Eq, PartialEq, serde::Serialize)] +pub struct MessageDeletedEvent { + pub message: message::Id, +} + +impl From<MessageDeletedEvent> for ChannelEventData { + fn from(message: MessageDeletedEvent) -> Self { + Self::MessageDeleted(message) + } +} |
