]> Untitled Git - lemmy.git/blobdiff - crates/apub/src/protocol/activities/community/block_user.rs
Adding temporary bans. Fixes #1423 (#1999)
[lemmy.git] / crates / apub / src / protocol / activities / community / block_user.rs
index 4ede06ae1e0b5e4a568889935186d860514de888..891fe1f553ffe23c8f26d52629c5d65411187bab 100644 (file)
@@ -1,18 +1,21 @@
 use crate::{
-  fetcher::object_id::ObjectId,
   objects::{community::ApubCommunity, person::ApubPerson},
+  protocol::Unparsed,
 };
-use activitystreams::{activity::kind::BlockType, unparsed::Unparsed};
-use lemmy_apub_lib::traits::ActivityFields;
+use activitystreams_kinds::activity::BlockType;
+use chrono::{DateTime, FixedOffset};
+use lemmy_apub_lib::object_id::ObjectId;
 use serde::{Deserialize, Serialize};
 use url::Url;
 
-#[derive(Clone, Debug, Deserialize, Serialize, ActivityFields)]
+#[derive(Clone, Debug, Deserialize, Serialize)]
 #[serde(rename_all = "camelCase")]
 pub struct BlockUserFromCommunity {
   pub(crate) actor: ObjectId<ApubPerson>,
+  #[serde(deserialize_with = "crate::deserialize_one_or_many")]
   pub(crate) to: Vec<Url>,
   pub(crate) object: ObjectId<ApubPerson>,
+  #[serde(deserialize_with = "crate::deserialize_one_or_many")]
   pub(crate) cc: Vec<Url>,
   pub(crate) target: ObjectId<ApubCommunity>,
   #[serde(rename = "type")]
@@ -20,4 +23,5 @@ pub struct BlockUserFromCommunity {
   pub(crate) id: Url,
   #[serde(flatten)]
   pub(crate) unparsed: Unparsed,
+  pub(crate) expires: Option<DateTime<FixedOffset>>,
 }