]> 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 0b974f697fcef17ff8c6d5a5bc9ca024320019e8..891fe1f553ffe23c8f26d52629c5d65411187bab 100644 (file)
@@ -1,5 +1,9 @@
-use crate::objects::{community::ApubCommunity, person::ApubPerson};
-use activitystreams::{activity::kind::BlockType, unparsed::Unparsed};
+use crate::{
+  objects::{community::ApubCommunity, person::ApubPerson},
+  protocol::Unparsed,
+};
+use activitystreams_kinds::activity::BlockType;
+use chrono::{DateTime, FixedOffset};
 use lemmy_apub_lib::object_id::ObjectId;
 use serde::{Deserialize, Serialize};
 use url::Url;
@@ -8,8 +12,10 @@ use url::Url;
 #[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")]
@@ -17,4 +23,5 @@ pub struct BlockUserFromCommunity {
   pub(crate) id: Url,
   #[serde(flatten)]
   pub(crate) unparsed: Unparsed,
+  pub(crate) expires: Option<DateTime<FixedOffset>>,
 }