diff --git a/src/poll.rs b/src/poll.rs index c55548c..d4203b0 100644 --- a/src/poll.rs +++ b/src/poll.rs @@ -9,6 +9,14 @@ use rocket_db_pools::Connection; #[serde(crate = "rocket::serde")] pub struct FeedPollResponse { count: usize, + entries: Vec, +} + +#[derive(Debug, Serialize)] +#[serde(crate = "rocket::serde")] +struct Entry { + id: String, + title: String, } #[post("/poll/")] @@ -36,7 +44,19 @@ pub async fn poll_feed( let feed_data = fetch_feed(&url).await.map_err(|_| Status::BadGateway)?; - Ok(Json(FeedPollResponse { - count: feed_data.entries.len(), - })) + let count = feed_data.entries.len(); + + let entries = feed_data + .entries + .into_iter() + .map(|feed_entry| Entry { + id: feed_entry.id, + title: feed_entry + .title + .map(|t| t.content) + .unwrap_or("".to_string()), + }) + .collect(); + + Ok(Json(FeedPollResponse { count, entries })) }