pub mod values;
-use activitystreams::{
- base::AnyBase,
- error::DomainError,
- primitives::OneOrMany,
- unparsed::Unparsed,
-};
+use activitystreams::error::DomainError;
pub use lemmy_apub_lib_derive::*;
use lemmy_utils::LemmyError;
use lemmy_websocket::LemmyContext;
use url::Url;
-#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
-#[serde(rename_all = "camelCase")]
-pub struct ActivityCommonFields {
- #[serde(rename = "@context")]
- pub context: OneOrMany<AnyBase>,
- pub id: Url,
- pub actor: Url,
-
- // unparsed fields
- #[serde(flatten)]
- pub unparsed: Unparsed,
-}
-
-impl ActivityCommonFields {
- pub fn id_unchecked(&self) -> &Url {
- &self.id
- }
+pub trait ActivityFields {
+ fn id_unchecked(&self) -> &Url;
+ fn actor(&self) -> &Url;
+ fn cc(&self) -> Vec<Url>;
}
#[async_trait::async_trait(?Send)]
context: &LemmyContext,
request_counter: &mut i32,
) -> Result<(), LemmyError>;
- fn common(&self) -> &ActivityCommonFields;
}
pub fn verify_domains_match(a: &Url, b: &Url) -> Result<(), LemmyError> {
Ok(())
}
-pub fn verify_domains_match_opt(a: &Url, b: Option<&Url>) -> Result<(), LemmyError> {
- if let Some(b2) = b {
- return verify_domains_match(a, b2);
- }
- Ok(())
-}
-
pub fn verify_urls_match(a: &Url, b: &Url) -> Result<(), LemmyError> {
if a != b {
return Err(DomainError.into());