X-Git-Url: http://these/git/?a=blobdiff_plain;f=crates%2Fapub%2Fsrc%2Fprotocol%2Fmod.rs;h=dba21f99d346d016ce11b8a945f0b83826d8ca61;hb=92568956353f21649ed9aff68b42699c9d036f30;hp=16bdb1b2995ea149721afeb5363442a1e213c660;hpb=030afbc2e78a91b1a302ca59c4ea0ccef9057019;p=lemmy.git diff --git a/crates/apub/src/protocol/mod.rs b/crates/apub/src/protocol/mod.rs index 16bdb1b2..dba21f99 100644 --- a/crates/apub/src/protocol/mod.rs +++ b/crates/apub/src/protocol/mod.rs @@ -1,7 +1,11 @@ -use crate::{local_instance, objects::community::ApubCommunity}; -use activitypub_federation::{deser::values::MediaTypeMarkdown, utils::fetch_object_http}; -use activitystreams_kinds::object::ImageType; -use lemmy_api_common::LemmyContext; +use crate::objects::community::ApubCommunity; +use activitypub_federation::{ + config::Data, + fetch::fetch_object_http, + kinds::object::ImageType, + protocol::values::MediaTypeMarkdown, +}; +use lemmy_api_common::context::LemmyContext; use lemmy_db_schema::newtypes::DbUrl; use lemmy_utils::error::LemmyError; use serde::{de::DeserializeOwned, Deserialize, Serialize}; @@ -60,41 +64,35 @@ pub(crate) enum IdOrNestedObject { NestedObject(Kind), } -impl IdOrNestedObject { +impl IdOrNestedObject { pub(crate) fn id(&self) -> &Url { match self { IdOrNestedObject::Id(i) => i, IdOrNestedObject::NestedObject(n) => n.object_id(), } } - pub(crate) async fn object( - self, - context: &LemmyContext, - request_counter: &mut i32, - ) -> Result { + pub(crate) async fn object(self, context: &Data) -> Result { match self { - IdOrNestedObject::Id(i) => { - Ok(fetch_object_http(&i, local_instance(context).await, request_counter).await?) - } + // TODO: move IdOrNestedObject struct to library and make fetch_object_http private + IdOrNestedObject::Id(i) => Ok(fetch_object_http(&i, context).await?), IdOrNestedObject::NestedObject(o) => Ok(o), } } } -#[async_trait::async_trait(?Send)] +#[async_trait::async_trait] pub trait InCommunity { // TODO: after we use audience field and remove backwards compat, it should be possible to change // this to simply `fn community(&self) -> Result, LemmyError>` - async fn community( - &self, - context: &LemmyContext, - request_counter: &mut i32, - ) -> Result; + async fn community(&self, context: &Data) -> Result; } #[cfg(test)] pub(crate) mod tests { - use activitypub_federation::deser::context::WithContext; + #![allow(clippy::unwrap_used)] + #![allow(clippy::indexing_slicing)] + + use activitypub_federation::protocol::context::WithContext; use assert_json_diff::assert_json_include; use lemmy_utils::error::LemmyError; use serde::{de::DeserializeOwned, Serialize};