diff options
Diffstat (limited to 'src/events/routes.rs')
| -rw-r--r-- | src/events/routes.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/events/routes.rs b/src/events/routes.rs index ce5b778..a6bf5d9 100644 --- a/src/events/routes.rs +++ b/src/events/routes.rs @@ -22,11 +22,14 @@ use crate::{ repo::{channel, login::Login}, }; +#[cfg(test)] +mod test; + pub fn router() -> Router<App> { Router::new().route("/api/events", get(events)) } -#[derive(serde::Deserialize)] +#[derive(Clone, serde::Deserialize)] struct EventsQuery { #[serde(default, rename = "channel")] channels: Vec<channel::Id>, @@ -38,7 +41,7 @@ async fn events( _: Login, // requires auth, but doesn't actually care who you are last_event_id: Option<LastEventId>, Query(query): Query<EventsQuery>, -) -> Result<Events<impl Stream<Item = ChannelEvent>>, ErrorResponse> { +) -> Result<Events<impl Stream<Item = ChannelEvent> + std::fmt::Debug>, ErrorResponse> { let resume_at = last_event_id.as_deref(); let streams = stream::iter(query.channels) @@ -64,6 +67,7 @@ async fn events( Ok(Events(stream)) } +#[derive(Debug)] struct Events<S>(S); impl<S> IntoResponse for Events<S> @@ -79,6 +83,7 @@ where } } +#[derive(Debug)] struct ErrorResponse(EventsError); impl IntoResponse for ErrorResponse { @@ -96,7 +101,7 @@ impl IntoResponse for ErrorResponse { } } -#[derive(serde::Serialize)] +#[derive(Debug, serde::Serialize)] struct ChannelEvent { channel: channel::Id, #[serde(flatten)] |
