From c7720ffd94da86782df062d84f88b2687d317384 Mon Sep 17 00:00:00 2001 From: Owen Jacobson Date: Fri, 27 Sep 2024 21:12:21 -0400 Subject: Push message body into its own object in events --- docs/api.md | 10 ++++++---- src/channel/routes/test/on_send.rs | 2 +- src/events/repo/message.rs | 12 ++++++++---- src/events/types.rs | 3 +-- src/repo/message.rs | 6 ++++++ 5 files changed, 22 insertions(+), 11 deletions(-) diff --git a/docs/api.md b/docs/api.md index c5ee34a..9d803ad 100644 --- a/docs/api.md +++ b/docs/api.md @@ -167,19 +167,18 @@ The returned event stream is a sequence of events: ```json id: 1233 data: { -data: "type": "created" +data: "type": "created", data: "at": "2024-09-27T23:18:10.208147Z", data: "channel": { data: "id": "C9876cyyz", data: "name": "example channel 2" -data: }, +data: } data: } id: 1234 data: { data: "type": "message", data: "at": "2024-09-27T23:19:10.208147Z", -data: "id": "Mxnjcf3y41prfry9", data: "channel": { data: "id": "C9876cyyz", data: "name": "example channel 2" @@ -188,6 +187,9 @@ data: "sender": { data: "id": "L1234abcd", data: "name": "example username" data: }, -data: "body": "beep" +data: "message": { +data: "id": "Mxnjcf3y41prfry9", +data: "body": "beep" +data: } data: } ``` diff --git a/src/channel/routes/test/on_send.rs b/src/channel/routes/test/on_send.rs index e4de0f1..20ae016 100644 --- a/src/channel/routes/test/on_send.rs +++ b/src/channel/routes/test/on_send.rs @@ -57,7 +57,7 @@ async fn messages_in_order() { event.data, types::ChannelEventData::Message(event_message) if event_message.sender == sender - && event_message.body == message + && event_message.message.body == message )); } } diff --git a/src/events/repo/message.rs b/src/events/repo/message.rs index b4724ea..ec17d55 100644 --- a/src/events/repo/message.rs +++ b/src/events/repo/message.rs @@ -58,9 +58,11 @@ impl<'c> Events<'c> { at: row.sent_at, channel: channel.clone(), data: types::MessageEvent { - id: row.id, sender: sender.clone(), - body: row.body, + message: message::Message { + id: row.id, + body: row.body, + }, } .into(), }) @@ -128,12 +130,14 @@ impl<'c> Events<'c> { at: row.sent_at, channel: channel.clone(), data: types::MessageEvent { - id: row.id, sender: login::Login { id: row.sender_id, name: row.sender_name, }, - body: row.body, + message: message::Message { + id: row.id, + body: row.body, + }, } .into(), }) diff --git a/src/events/types.rs b/src/events/types.rs index 7c0e0a4..944321a 100644 --- a/src/events/types.rs +++ b/src/events/types.rs @@ -123,9 +123,8 @@ pub enum ChannelEventData { #[derive(Clone, Debug, Eq, PartialEq, serde::Serialize)] pub struct MessageEvent { - pub id: message::Id, pub sender: Login, - pub body: String, + pub message: message::Message, } impl From for ChannelEventData { diff --git a/src/repo/message.rs b/src/repo/message.rs index 385b103..a1f73d5 100644 --- a/src/repo/message.rs +++ b/src/repo/message.rs @@ -25,3 +25,9 @@ impl fmt::Display for Id { self.0.fmt(f) } } + +#[derive(Clone, Debug, Eq, PartialEq, serde::Serialize)] +pub struct Message { + pub id: Id, + pub body: String, +} -- cgit v1.2.3