objects::{community::ApubCommunity, person::ApubPerson},
protocol::objects::{group::Group, person::Person},
};
+use activitypub_federation::traits::{Actor, ApubObject};
use chrono::NaiveDateTime;
-use lemmy_apub_lib::traits::{ActorType, ApubObject};
-use lemmy_utils::LemmyError;
+use lemmy_utils::error::LemmyError;
use lemmy_websocket::LemmyContext;
use serde::{Deserialize, Serialize};
use url::Url;
Group(Group),
}
-#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
+#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)]
pub enum PersonOrGroupType {
Person,
Group,
type DataType = LemmyContext;
type ApubType = PersonOrGroup;
type DbType = ();
- type TombstoneType = ();
+ type Error = LemmyError;
fn last_refreshed_at(&self) -> Option<NaiveDateTime> {
Some(match self {
unimplemented!()
}
- fn to_tombstone(&self) -> Result<Self::TombstoneType, LemmyError> {
- unimplemented!()
- }
-
#[tracing::instrument(skip_all)]
async fn verify(
apub: &Self::ApubType,
}
}
-impl ActorType for UserOrCommunity {
- fn actor_id(&self) -> Url {
- match self {
- UserOrCommunity::User(p) => p.actor_id(),
- UserOrCommunity::Community(p) => p.actor_id(),
- }
- }
-
- fn public_key(&self) -> String {
+impl Actor for UserOrCommunity {
+ fn public_key(&self) -> &str {
match self {
UserOrCommunity::User(p) => p.public_key(),
UserOrCommunity::Community(p) => p.public_key(),
}
}
- fn private_key(&self) -> Option<String> {
- todo!()
- }
-
- fn inbox_url(&self) -> Url {
- todo!()
- }
-
- fn shared_inbox_url(&self) -> Option<Url> {
- todo!()
+ fn inbox(&self) -> Url {
+ unimplemented!()
}
}