- let apub_id = group.id.inner().to_owned();
- let instance = blocking(context.pool(), move |conn| {
- Instance::create_from_actor_id(conn, &apub_id)
- })
- .await??;
-
- let form = Group::into_insert_form(group.clone(), instance.id);
- let languages = LanguageTag::to_language_id_multiple(group.language, context.pool()).await?;
-
- let community: ApubCommunity = blocking(context.pool(), move |conn| {
- let community = Community::create(conn, &form)?;
- CommunityLanguage::update(conn, languages, community.id)?;
- Ok::<Community, diesel::result::Error>(community)
- })
- .await??
- .into();
- let outbox_data = CommunityContext(community.clone(), context.clone());
+ let instance_id = fetch_instance_actor_for_object(&group.id, context).await?;
+
+ let form = Group::into_insert_form(group.clone(), instance_id);
+ let languages =
+ LanguageTag::to_language_id_multiple(group.language, &mut context.pool()).await?;
+
+ let community = Community::create(&mut context.pool(), &form).await?;
+ CommunityLanguage::update(&mut context.pool(), languages, community.id).await?;
+
+ let community: ApubCommunity = community.into();