X-Git-Url: http://these/git/?a=blobdiff_plain;f=crates%2Fapub%2Fsrc%2Factivities%2Fvoting%2Fundo_vote.rs;h=e11d29602c41452d1d3bf3ee0bfcded368a985bb;hb=527eefbe92a4796b957fb232831f7e7c80511ed9;hp=0f0eb1ffbed160e546400ea182d1894eac010304;hpb=21346eb786dc75efaca19e6de8a514fab3d33da8;p=lemmy.git diff --git a/crates/apub/src/activities/voting/undo_vote.rs b/crates/apub/src/activities/voting/undo_vote.rs index 0f0eb1ff..e11d2960 100644 --- a/crates/apub/src/activities/voting/undo_vote.rs +++ b/crates/apub/src/activities/voting/undo_vote.rs @@ -12,10 +12,7 @@ use crate::{ }, activity_queue::send_to_community_new, extensions::context::lemmy_context, - fetcher::{ - objects::get_or_fetch_and_insert_post_or_comment, - person::get_or_fetch_and_upsert_person, - }, + fetcher::object_id::ObjectId, ActorType, PostOrComment, }; @@ -41,10 +38,10 @@ use url::Url; #[derive(Clone, Debug, Deserialize, Serialize, ActivityFields)] #[serde(rename_all = "camelCase")] pub struct UndoVote { - actor: Url, + actor: ObjectId, to: [PublicUrl; 1], object: Vote, - cc: [Url; 1], + cc: [ObjectId; 1], #[serde(rename = "type")] kind: UndoType, id: Url, @@ -70,10 +67,10 @@ impl UndoVote { let object = Vote::new(object, actor, &community, kind.clone())?; let id = generate_activity_id(UndoType::Undo)?; let undo_vote = UndoVote { - actor: actor.actor_id(), + actor: ObjectId::new(actor.actor_id()), to: [PublicUrl::Public], object, - cc: [community.actor_id()], + cc: [ObjectId::new(community.actor_id())], kind: UndoType::Undo, id: id.clone(), context: lemmy_context(), @@ -93,7 +90,7 @@ impl ActivityHandler for UndoVote { ) -> Result<(), LemmyError> { verify_activity(self)?; verify_person_in_community(&self.actor, &self.cc[0], context, request_counter).await?; - verify_urls_match(&self.actor, self.object.actor())?; + verify_urls_match(self.actor(), self.object.actor())?; self.object.verify(context, request_counter).await?; Ok(()) } @@ -103,10 +100,12 @@ impl ActivityHandler for UndoVote { context: &LemmyContext, request_counter: &mut i32, ) -> Result<(), LemmyError> { - let actor = get_or_fetch_and_upsert_person(&self.actor, context, request_counter).await?; - let object = - get_or_fetch_and_insert_post_or_comment(&self.object.object, context, request_counter) - .await?; + let actor = self.actor.dereference(context, request_counter).await?; + let object = self + .object + .object + .dereference(context, request_counter) + .await?; match object { PostOrComment::Post(p) => undo_vote_post(actor, p.deref(), context).await, PostOrComment::Comment(c) => undo_vote_comment(actor, c.deref(), context).await,