Publish NewStatus fields

This commit is contained in:
D. Scott Boggs 2023-01-04 08:46:33 -05:00 committed by Scott Boggs
parent abafaf224c
commit cc6bd77cab
1 changed files with 27 additions and 8 deletions

View File

@ -220,24 +220,43 @@ impl StatusBuilder {
} }
/// Represents a post that can be sent to the POST /api/v1/status endpoint /// Represents a post that can be sent to the POST /api/v1/status endpoint
///
/// See also [the API documentation](https://docs.joinmastodon.org/methods/statuses/#form-data-parameters)
#[derive(Debug, Default, Clone, Serialize, PartialEq, Eq)] #[derive(Debug, Default, Clone, Serialize, PartialEq, Eq)]
pub struct NewStatus { pub struct NewStatus {
/// The text content of the status. If media_ids is provided, this becomes
/// optional. Attaching a poll is optional while status is provided.
///
/// Note that this means there is at this time no check provided by this
/// type to ensure that this value is set when it is required by the API,
/// and an APIError should be expected from [`crate::Mastodon::new_status()`]
/// in this case.
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
status: Option<String>, pub status: Option<String>,
/// ID of the status being replied to, if status is a reply.
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
in_reply_to_id: Option<String>, pub in_reply_to_id: Option<String>,
/// Include Attachment IDs to be attached as media. If provided, status
/// becomes optional, and poll cannot be used.
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
media_ids: Option<Vec<String>>, pub media_ids: Option<Vec<String>>,
/// Mark status and attached media as sensitive? Defaults to false.
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
sensitive: Option<bool>, pub sensitive: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
spoiler_text: Option<String>, /// Text to be shown as a warning or subject before the actual content.
/// Statuses are generally collapsed behind this field.
pub spoiler_text: Option<String>,
/// Sets the visibility of the posted status to public, unlisted, private, direct.
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
visibility: Option<Visibility>, pub visibility: Option<Visibility>,
/// ISO 639 language code for this status.
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
language: Option<Language>, pub language: Option<Language>,
/// Ignored by Mastodon servers, sets the content type for the status.
/// Mastodon "toots" are always `text/plain`, regardless of this value.
#[serde(skip_serializing_if = "Option::is_none")] #[serde(skip_serializing_if = "Option::is_none")]
content_type: Option<String>, pub content_type: Option<String>,
} }
#[cfg(test)] #[cfg(test)]