9 pub use lemmy_apub_lib_derive::*;
10 use lemmy_utils::LemmyError;
11 use lemmy_websocket::LemmyContext;
14 #[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
15 #[serde(rename_all = "camelCase")]
16 pub struct ActivityCommonFields {
17 #[serde(rename = "@context")]
18 pub context: OneOrMany<AnyBase>,
24 pub unparsed: Unparsed,
27 impl ActivityCommonFields {
28 pub fn id_unchecked(&self) -> &Url {
33 #[async_trait::async_trait(?Send)]
34 pub trait ActivityHandler {
37 context: &LemmyContext,
38 request_counter: &mut i32,
39 ) -> Result<(), LemmyError>;
43 context: &LemmyContext,
44 request_counter: &mut i32,
45 ) -> Result<(), LemmyError>;
46 fn common(&self) -> &ActivityCommonFields;
49 pub fn verify_domains_match(a: &Url, b: &Url) -> Result<(), LemmyError> {
50 if a.domain() != b.domain() {
51 return Err(DomainError.into());
56 pub fn verify_domains_match_opt(a: &Url, b: Option<&Url>) -> Result<(), LemmyError> {
58 return verify_domains_match(a, b2);
63 pub fn verify_urls_match(a: &Url, b: &Url) -> Result<(), LemmyError> {
65 return Err(DomainError.into());