feat(backend): wire FeedRequest/FeedOptions sort+filter through all feed layers
This commit is contained in:
@@ -9,8 +9,8 @@ use domain::{
|
||||
},
|
||||
ports::{
|
||||
EventPublisher, FederationActionPort, FederationFollowPort, FederationFollowRequestPort,
|
||||
FederationSchedulerPort, FeedQuery, FeedRepository, FollowRepository,
|
||||
RemoteActorConnectionRepository, UserReader,
|
||||
FederationSchedulerPort, FeedOptions, FeedQuery, FeedRepository, FeedRequest,
|
||||
FollowRepository, RemoteActorConnectionRepository, UserReader,
|
||||
},
|
||||
value_objects::UserId,
|
||||
};
|
||||
@@ -136,11 +136,10 @@ pub async fn get_remote_actor_posts(
|
||||
None => ap_repo.intern_remote_actor(&actor.url).await?,
|
||||
};
|
||||
let result = feed
|
||||
.query(&FeedQuery::user(
|
||||
author_id,
|
||||
page.clone(),
|
||||
viewer_id.cloned(),
|
||||
))
|
||||
.query(&FeedRequest {
|
||||
query: FeedQuery::user(author_id, page.clone(), viewer_id.cloned()),
|
||||
options: FeedOptions::default(),
|
||||
})
|
||||
.await?;
|
||||
if let Some(outbox_url) = actor.outbox_url {
|
||||
let _ = scheduler
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use domain::{
|
||||
errors::DomainError,
|
||||
models::feed::{FeedEntry, PageParams, Paginated},
|
||||
ports::{FeedQuery, FeedRepository, FollowRepository},
|
||||
ports::{FeedOptions, FeedQuery, FeedRepository, FeedRequest, FollowRepository},
|
||||
value_objects::UserId,
|
||||
};
|
||||
|
||||
@@ -10,9 +10,13 @@ pub async fn get_home_feed(
|
||||
follows: &dyn FollowRepository,
|
||||
user_id: &UserId,
|
||||
page: PageParams,
|
||||
opts: FeedOptions,
|
||||
) -> 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
|
||||
feed.query(&FeedRequest {
|
||||
query: FeedQuery::home(user_id.clone(), following_ids, page),
|
||||
options: opts,
|
||||
})
|
||||
.await
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user