Fetch community mods synchronously (#5169)

* Fetch community mods synchronously

* fix

* fix

---------

Co-authored-by: Dessalines <dessalines@users.noreply.github.com>
This commit is contained in:
Nutomic 2024-11-12 18:43:24 +01:00 committed by GitHub
parent dce6c6bbf0
commit 542e59bcae
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -194,10 +194,16 @@ impl Object for ApubCommunity {
LanguageTag::to_language_id_multiple(group.language, &mut context.pool()).await?;
let timestamp = group.updated.or(group.published).unwrap_or_else(naive_now);
let community = Community::insert_apub(&mut context.pool(), timestamp, &form).await?;
let community: ApubCommunity = Community::insert_apub(&mut context.pool(), timestamp, &form)
.await?
.into();
CommunityLanguage::update(&mut context.pool(), languages, community.id).await?;
let community: ApubCommunity = community.into();
// Need to fetch mods synchronously, otherwise fetching a post in community with
// `posting_restricted_to_mods` can fail if mods havent been fetched yet.
if let Some(moderators) = group.attributed_to {
moderators.dereference(&community, context).await.ok();
}
// These collections are not necessary for Lemmy to work, so ignore errors.
let community_ = community.clone();
@ -210,9 +216,6 @@ impl Object for ApubCommunity {
if let Some(featured) = group.featured {
featured.dereference(&community_, &context_).await.ok();
}
if let Some(moderators) = group.attributed_to {
moderators.dereference(&community_, &context_).await.ok();
}
Ok(())
});