From: Dessalines Date: Wed, 19 Apr 2023 20:16:19 +0000 (-0400) Subject: Adding cross_post fetching to GetPost. Fixes #2127 (#2821) X-Git-Url: http://these/git/%22https:/image.com/readmes/%7B%60%24%7BarchiveUrl%7D/static/%7BpictrsAvatarThumbnail%28?a=commitdiff_plain;h=1e26709cb4c8628f240516e897198c34bd9b8618;p=lemmy.git Adding cross_post fetching to GetPost. Fixes #2127 (#2821) --- diff --git a/crates/api_common/src/post.rs b/crates/api_common/src/post.rs index 82a1d664..af66074a 100644 --- a/crates/api_common/src/post.rs +++ b/crates/api_common/src/post.rs @@ -39,6 +39,7 @@ pub struct GetPostResponse { pub post_view: PostView, pub community_view: CommunityView, pub moderators: Vec, + pub cross_posts: Vec, pub online: usize, } diff --git a/crates/api_crud/src/post/read.rs b/crates/api_crud/src/post/read.rs index 0dfb67c4..eadb6d11 100644 --- a/crates/api_crud/src/post/read.rs +++ b/crates/api_crud/src/post/read.rs @@ -16,7 +16,7 @@ use lemmy_db_schema::{ source::{comment::Comment, local_site::LocalSite, post::Post}, traits::Crud, }; -use lemmy_db_views::structs::PostView; +use lemmy_db_views::{post_view::PostQuery, structs::PostView}; use lemmy_db_views_actor::structs::{CommunityModeratorView, CommunityView}; use lemmy_utils::{error::LemmyError, ConnectionId}; @@ -96,6 +96,18 @@ impl PerformCrud for GetPost { let moderators = CommunityModeratorView::for_community(context.pool(), community_id).await?; + // Fetch the cross_posts + let cross_posts = if let Some(url) = &post_view.post.url { + PostQuery::builder() + .pool(context.pool()) + .url_search(Some(url.inner().as_str().into())) + .build() + .list() + .await? + } else { + Vec::new() + }; + let online = context .chat_server() .send(GetPostUsersOnline { post_id }) @@ -107,6 +119,7 @@ impl PerformCrud for GetPost { community_view, moderators, online, + cross_posts, }) } }