diff --git a/plume-models/src/follows.rs b/plume-models/src/follows.rs index 75e19a38..d8a163ba 100644 --- a/plume-models/src/follows.rs +++ b/plume-models/src/follows.rs @@ -191,6 +191,22 @@ impl Follow { .set_cc_link_vec(vec![Id::new(PUBLIC_VISIBILITY.to_string())])?; Ok(undo) } + + pub fn build_undo07(&self, conn: &Connection) -> Result { + let mut undo = Undo07::new( + User::get(conn, self.follower_id)? + .ap_url + .parse::()?, + self.ap_url.parse::()?, + ); + undo.set_id(format!("{}/undo", self.ap_url).parse::()?); + undo.set_many_tos(vec![User::get(conn, self.following_id)? + .ap_url + .parse::()?]); + undo.set_many_ccs(vec![PUBLIC_VISIBILITY.parse::()?]); + + Ok(undo) + } } impl AsObject for User {