Start working with entries
This commit is contained in:
parent
3ca699b948
commit
18f51ed741
26
src/poll.rs
26
src/poll.rs
@ -9,6 +9,14 @@ use rocket_db_pools::Connection;
|
||||
#[serde(crate = "rocket::serde")]
|
||||
pub struct FeedPollResponse {
|
||||
count: usize,
|
||||
entries: Vec<Entry>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Serialize)]
|
||||
#[serde(crate = "rocket::serde")]
|
||||
struct Entry {
|
||||
id: String,
|
||||
title: String,
|
||||
}
|
||||
|
||||
#[post("/poll/<feed_id>")]
|
||||
@ -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("<no title>".to_string()),
|
||||
})
|
||||
.collect();
|
||||
|
||||
Ok(Json(FeedPollResponse { count, entries }))
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user