fix: AP user federation behavior

This commit is contained in:
April John 2024-07-26 00:26:13 +02:00
parent c2a79b128b
commit 483212c7fa
Signed by: aprl
GPG key ID: BCB934A2909C5460
3 changed files with 51 additions and 0 deletions

View file

@ -79,28 +79,45 @@ pub struct Person {
pub id: ObjectId<user::Model>,
pub inbox: Url,
pub public_key: PublicKey,
#[serde(skip_serializing_if = "Option::is_none")]
pub indexable: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub discoverable: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub manually_approves_followers: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub followers: Option<Url>,
#[serde(skip_serializing_if = "Option::is_none")]
pub following: Option<Url>,
#[serde(skip_serializing_if = "Option::is_none")]
pub featured: Option<Url>,
#[serde(skip_serializing_if = "Option::is_none")]
pub endpoints: Option<EndpointType>,
#[serde(skip_serializing_if = "Option::is_none")]
pub outbox: Option<Url>,
#[serde(skip_serializing_if = "Option::is_none")]
pub featured_tags: Option<Url>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<Vec<TagType>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub icon: Option<IconType>,
#[serde(skip_serializing_if = "Option::is_none")]
pub image: Option<IconType>,
#[serde(skip_serializing_if = "Option::is_none")]
pub attachment: Option<Vec<AttachmentType>>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct TagType {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<Url>,
#[serde(skip_serializing_if = "Option::is_none")]
pub href: Option<Url>,
pub name: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub updated: Option<DateTime<Utc>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub icon: Option<IconType>,
}

View file

@ -39,9 +39,12 @@ pub struct Note {
#[serde(deserialize_with = "deserialize_one_or_many")]
pub(crate) to: Vec<Url>,
pub(crate) content: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) in_reply_to: Option<ObjectId<post::Model>>,
pub(crate) tag: Vec<Mention>,
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) sensitive: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub(crate) cc: Option<Vec<Url>>,
}