refactor(adapters): update FeedEntry construction to use EngagementStats + ViewerContext
This commit is contained in:
@@ -106,7 +106,7 @@ fn feed_select(viewer: Option<uuid::Uuid>) -> String {
|
||||
)
|
||||
}
|
||||
|
||||
fn row_to_entry(r: FeedRow) -> Result<FeedEntry, DomainError> {
|
||||
fn row_to_entry(r: FeedRow, viewer: Option<uuid::Uuid>) -> Result<FeedEntry, DomainError> {
|
||||
let thought = Thought {
|
||||
id: ThoughtId::from_uuid(r.thought_id),
|
||||
user_id: UserId::from_uuid(r.t_user_id),
|
||||
@@ -136,11 +136,15 @@ fn row_to_entry(r: FeedRow) -> Result<FeedEntry, DomainError> {
|
||||
Ok(FeedEntry {
|
||||
thought,
|
||||
author,
|
||||
like_count: r.like_count,
|
||||
boost_count: r.boost_count,
|
||||
reply_count: r.reply_count,
|
||||
liked_by_viewer: r.liked_by_viewer,
|
||||
boosted_by_viewer: r.boosted_by_viewer,
|
||||
stats: domain::models::feed::EngagementStats {
|
||||
like_count: r.like_count,
|
||||
boost_count: r.boost_count,
|
||||
reply_count: r.reply_count,
|
||||
},
|
||||
viewer: viewer.map(|_| domain::models::feed::ViewerContext {
|
||||
liked: r.liked_by_viewer,
|
||||
boosted: r.boosted_by_viewer,
|
||||
}),
|
||||
})
|
||||
}
|
||||
|
||||
@@ -178,7 +182,7 @@ impl FeedRepository for PgFeedRepository {
|
||||
Ok(Paginated {
|
||||
items: rows
|
||||
.into_iter()
|
||||
.map(row_to_entry)
|
||||
.map(|r| row_to_entry(r, viewer))
|
||||
.collect::<Result<Vec<_>, _>>()?,
|
||||
total,
|
||||
page: page.page,
|
||||
@@ -211,7 +215,7 @@ impl FeedRepository for PgFeedRepository {
|
||||
Ok(Paginated {
|
||||
items: rows
|
||||
.into_iter()
|
||||
.map(row_to_entry)
|
||||
.map(|r| row_to_entry(r, viewer))
|
||||
.collect::<Result<Vec<_>, _>>()?,
|
||||
total,
|
||||
page: page.page,
|
||||
@@ -247,7 +251,7 @@ impl FeedRepository for PgFeedRepository {
|
||||
Ok(Paginated {
|
||||
items: rows
|
||||
.into_iter()
|
||||
.map(row_to_entry)
|
||||
.map(|r| row_to_entry(r, viewer))
|
||||
.collect::<Result<Vec<_>, _>>()?,
|
||||
total,
|
||||
page: page.page,
|
||||
@@ -292,7 +296,7 @@ impl FeedRepository for PgFeedRepository {
|
||||
Ok(Paginated {
|
||||
items: rows
|
||||
.into_iter()
|
||||
.map(row_to_entry)
|
||||
.map(|r| row_to_entry(r, viewer))
|
||||
.collect::<Result<Vec<_>, _>>()?,
|
||||
total,
|
||||
page: page.page,
|
||||
@@ -335,7 +339,7 @@ impl FeedRepository for PgFeedRepository {
|
||||
Ok(Paginated {
|
||||
items: rows
|
||||
.into_iter()
|
||||
.map(row_to_entry)
|
||||
.map(|r| row_to_entry(r, viewer))
|
||||
.collect::<Result<Vec<_>, _>>()?,
|
||||
total,
|
||||
page: page.page,
|
||||
|
||||
Reference in New Issue
Block a user