23 lines
578 B
Rust
23 lines
578 B
Rust
|
|
use crate::api::ArticleView;
|
||
|
|
use anyhow::Result;
|
||
|
|
use feedsignal_db::Db;
|
||
|
|
|
||
|
|
/// Returns articles ranked by `final_score` descending, highest-relevance first.
|
||
|
|
pub async fn list_ranked(db: Db) -> Result<Vec<ArticleView>> {
|
||
|
|
Ok(db
|
||
|
|
.list_ranked_articles(100)
|
||
|
|
.await?
|
||
|
|
.into_iter()
|
||
|
|
.map(
|
||
|
|
|(id, title, url, summary, topics, final_score)| ArticleView {
|
||
|
|
id,
|
||
|
|
title,
|
||
|
|
url,
|
||
|
|
summary,
|
||
|
|
topics,
|
||
|
|
final_score,
|
||
|
|
},
|
||
|
|
)
|
||
|
|
.collect())
|
||
|
|
}
|