From 34ecf56ccd65f9d5b5a5db6b5ff651dbfb9ae17c Mon Sep 17 00:00:00 2001 From: silverpill Date: Fri, 15 Jul 2022 19:36:21 +0000 Subject: [PATCH] Add actor collections enum --- src/activitypub/actor.rs | 5 +++-- src/activitypub/identifiers.rs | 21 +++++++++++++++++++++ src/activitypub/mod.rs | 1 + 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 src/activitypub/identifiers.rs diff --git a/src/activitypub/actor.rs b/src/activitypub/actor.rs index 90e326c..460cf2f 100644 --- a/src/activitypub/actor.rs +++ b/src/activitypub/actor.rs @@ -13,6 +13,7 @@ use crate::models::users::types::User; use crate::utils::crypto::{deserialize_private_key, get_public_key_pem}; use crate::utils::files::get_file_url; use super::constants::{ACTOR_KEY_SUFFIX, AP_CONTEXT}; +use super::identifiers::LocalActorCollection; use super::views::{ get_actor_url, get_inbox_url, @@ -339,8 +340,8 @@ pub fn get_instance_actor( instance: &Instance, ) -> Result { let actor_id = instance.actor_id(); - let actor_inbox = format!("{}/inbox", actor_id); - let actor_outbox = format!("{}/outbox", actor_id); + let actor_inbox = LocalActorCollection::Inbox.of(&actor_id); + let actor_outbox = LocalActorCollection::Outbox.of(&actor_id); let public_key_pem = get_public_key_pem(&instance.actor_key)?; let public_key = PublicKey { id: instance.actor_key_id(), diff --git a/src/activitypub/identifiers.rs b/src/activitypub/identifiers.rs new file mode 100644 index 0000000..dddd949 --- /dev/null +++ b/src/activitypub/identifiers.rs @@ -0,0 +1,21 @@ +#[allow(dead_code)] +pub enum LocalActorCollection { + Inbox, + Outbox, + Followers, + Following, + Subscribers, +} + +impl LocalActorCollection { + pub fn of(&self, actor_id: &str) -> String { + let name = match self { + Self::Inbox => "inbox", + Self::Outbox => "outbox", + Self::Followers => "followers", + Self::Following => "following", + Self::Subscribers => "subscribers", + }; + format!("{}/{}", actor_id, name) + } +} diff --git a/src/activitypub/mod.rs b/src/activitypub/mod.rs index 4530527..90b74d3 100644 --- a/src/activitypub/mod.rs +++ b/src/activitypub/mod.rs @@ -6,6 +6,7 @@ pub mod constants; mod deliverer; pub mod fetcher; pub mod handlers; +mod identifiers; mod receiver; pub mod views; mod vocabulary;