diff options
author | Felix Ableitner <me@nutomic.com> | 2020-06-03 17:54:15 +0200 |
---|---|---|
committer | Felix Ableitner <me@nutomic.com> | 2020-06-03 21:44:14 +0200 |
commit | c1ef766125179c752ef43fb89a538058f54e9c9f (patch) | |
tree | a40b5e42de158758779c1794e6cfbc50dd4352d4 /server/src/apub/user.rs | |
parent | 3999e0485efadfe77e1c23bda878dba70131be06 (diff) |
migrate follow
Diffstat (limited to 'server/src/apub/user.rs')
-rw-r--r-- | server/src/apub/user.rs | 46 |
1 files changed, 12 insertions, 34 deletions
diff --git a/server/src/apub/user.rs b/server/src/apub/user.rs index 77b012fd..c840cc22 100644 --- a/server/src/apub/user.rs +++ b/server/src/apub/user.rs @@ -17,14 +17,18 @@ use crate::{ routes::DbPoolParam, }; use activitystreams::{ - activity::{Follow, Undo}, actor::{properties::ApActorProperties, Person}, context, endpoint::EndpointProperties, object::{properties::ObjectProperties, AnyImage, Image}, + primitives::XsdAnyUri, }; use activitystreams_ext::Ext2; -use activitystreams_new::object::Tombstone; +use activitystreams_new::{ + activity::{Follow, Undo}, + object::Tombstone, + prelude::*, +}; use actix_web::{body::Body, web::Path, HttpResponse, Result}; use diesel::PgConnection; use failure::Error; @@ -102,18 +106,9 @@ impl ActorType for User_ { /// As a given local user, send out a follow request to a remote community. fn send_follow(&self, follow_actor_id: &str, conn: &PgConnection) -> Result<(), Error> { - let mut follow = Follow::new(); - let id = format!("{}/follow/{}", self.actor_id, uuid::Uuid::new_v4()); - - follow - .object_props - .set_context_xsd_any_uri(context())? - .set_id(id)?; - follow - .follow_props - .set_actor_xsd_any_uri(self.actor_id.to_owned())? - .set_object_xsd_any_uri(follow_actor_id)?; + let mut follow = Follow::new(self.actor_id.to_owned(), follow_actor_id); + follow.set_context(context()).set_id(id.parse()?); let to = format!("{}/inbox", follow_actor_id); insert_activity(&conn, self.id, &follow, true)?; @@ -123,34 +118,17 @@ impl ActorType for User_ { } fn send_unfollow(&self, follow_actor_id: &str, conn: &PgConnection) -> Result<(), Error> { - let mut follow = Follow::new(); - let id = format!("{}/follow/{}", self.actor_id, uuid::Uuid::new_v4()); + let mut follow = Follow::new(self.actor_id.to_owned(), follow_actor_id); + follow.set_context(context()).set_id(id.parse()?); - follow - .object_props - .set_context_xsd_any_uri(context())? - .set_id(id)?; - follow - .follow_props - .set_actor_xsd_any_uri(self.actor_id.to_owned())? - .set_object_xsd_any_uri(follow_actor_id)?; let to = format!("{}/inbox", follow_actor_id); // TODO // Undo that fake activity let undo_id = format!("{}/undo/follow/{}", self.actor_id, uuid::Uuid::new_v4()); - let mut undo = Undo::default(); - - undo - .object_props - .set_context_xsd_any_uri(context())? - .set_id(undo_id)?; - - undo - .undo_props - .set_actor_xsd_any_uri(self.actor_id.to_owned())? - .set_object_base_box(follow)?; + let mut undo = Undo::new(self.actor_id.parse::<XsdAnyUri>()?, follow.into_any_base()?); + undo.set_context(context()).set_id(undo_id.parse()?); insert_activity(&conn, self.id, &undo, true)?; |