feat: v2 rewrite — hexagonal arch, ActivityPub federation, NATS, deployment-ready (#1)
This commit was merged in pull request #1.
This commit is contained in:
17
crates/application/src/use_cases/feed.rs
Normal file
17
crates/application/src/use_cases/feed.rs
Normal file
@@ -0,0 +1,17 @@
|
||||
use domain::{
|
||||
errors::DomainError,
|
||||
models::feed::{FeedEntry, PageParams, Paginated},
|
||||
ports::{FeedQuery, FeedRepository, FollowRepository},
|
||||
value_objects::UserId,
|
||||
};
|
||||
|
||||
pub async fn get_home_feed(
|
||||
feed: &dyn FeedRepository,
|
||||
follows: &dyn FollowRepository,
|
||||
user_id: &UserId,
|
||||
page: PageParams,
|
||||
) -> Result<Paginated<FeedEntry>, DomainError> {
|
||||
let mut following_ids = follows.get_accepted_following_ids(user_id).await?;
|
||||
following_ids.push(user_id.clone());
|
||||
feed.query(&FeedQuery::home(user_id.clone(), following_ids, page)).await
|
||||
}
|
||||
Reference in New Issue
Block a user