diff --git a/crates/application/src/use_cases/feed.rs b/crates/application/src/use_cases/feed.rs index 13af651..b384e3e 100644 --- a/crates/application/src/use_cases/feed.rs +++ b/crates/application/src/use_cases/feed.rs @@ -1,10 +1,7 @@ use domain::{ errors::DomainError, - models::{ - feed::{FeedEntry, PageParams, Paginated, UserSummary}, - user::User, - }, - ports::{FeedQuery, FeedRepository, FollowRepository, TagRepository, UserReader}, + models::feed::{FeedEntry, PageParams, Paginated}, + ports::{FeedQuery, FeedRepository, FollowRepository}, value_objects::UserId, }; @@ -15,88 +12,6 @@ pub async fn get_home_feed( page: PageParams, ) -> Result, DomainError> { let mut following_ids = follows.get_accepted_following_ids(user_id).await?; - following_ids.push(user_id.clone()); // include own thoughts in home feed + following_ids.push(user_id.clone()); feed.query(&FeedQuery::home(user_id.clone(), following_ids, page)).await } - -pub async fn get_public_feed( - feed: &dyn FeedRepository, - viewer_id: Option<&UserId>, - page: PageParams, -) -> Result, DomainError> { - feed.query(&FeedQuery::public(page, viewer_id.cloned())).await -} - -pub async fn get_user_feed( - feed: &dyn FeedRepository, - user_id: &UserId, - page: PageParams, - viewer_id: Option<&UserId>, -) -> Result, DomainError> { - feed.query(&FeedQuery::user(user_id.clone(), page, viewer_id.cloned())).await -} - -pub async fn get_followers( - follows: &dyn FollowRepository, - user_id: &UserId, - page: PageParams, -) -> Result, DomainError> { - follows.list_followers(user_id, &page).await -} - -pub async fn get_following( - follows: &dyn FollowRepository, - user_id: &UserId, - page: PageParams, -) -> Result, DomainError> { - follows.list_following(user_id, &page).await -} - -pub async fn get_by_tag( - feed: &dyn FeedRepository, - tag_name: &str, - page: PageParams, - viewer_id: Option<&UserId>, -) -> Result, DomainError> { - feed.query(&FeedQuery::tag(tag_name, page, viewer_id.cloned())).await -} - -pub async fn search( - feed: &dyn FeedRepository, - query: &str, - page: PageParams, - viewer_id: Option<&UserId>, -) -> Result, DomainError> { - feed.query(&FeedQuery::search(query, page, viewer_id.cloned())).await -} - -pub async fn list_users(users: &dyn UserReader) -> Result, DomainError> { - users.list_with_stats().await -} - -pub async fn list_users_paginated( - users: &dyn UserReader, - page: PageParams, -) -> Result, DomainError> { - let all = users.list_with_stats().await?; - let total = all.len() as i64; - let start = ((page.page.saturating_sub(1)) * page.per_page) as usize; - let items: Vec = all - .into_iter() - .skip(start) - .take(page.per_page as usize) - .collect(); - Ok(Paginated { - items, - total, - page: page.page, - per_page: page.per_page, - }) -} - -pub async fn get_popular_tags( - tags: &dyn TagRepository, - limit: usize, -) -> Result, DomainError> { - tags.popular_tags(limit).await -}