Create Greet Message
This commit is contained in:
parent
754b604a59
commit
2352034b82
|
@ -8,7 +8,8 @@ use crate::errors::{ChorusError, ChorusResult};
|
|||
use crate::instance::UserMeta;
|
||||
use crate::ratelimiter::ChorusRequest;
|
||||
use crate::types::{
|
||||
Channel, Message, MessageSearchEndpoint, MessageSearchQuery, MessageSendSchema, Snowflake,
|
||||
Channel, CreateGreetMessage, Message, MessageSearchEndpoint, MessageSearchQuery,
|
||||
MessageSendSchema, Snowflake,
|
||||
};
|
||||
|
||||
impl Message {
|
||||
|
@ -224,6 +225,29 @@ impl Message {
|
|||
};
|
||||
chorus_request.deserialize_response::<Message>(user).await
|
||||
}
|
||||
|
||||
/// Posts a greet message to a channel. This endpoint requires the channel is a DM channel or you reply to a system message.
|
||||
/// # Reference:
|
||||
/// See: <https://discord-userdoccers.vercel.app/resources/message#create-greet-message>
|
||||
pub async fn create_greet(
|
||||
channel_id: Snowflake,
|
||||
schema: CreateGreetMessage,
|
||||
user: &mut UserMeta,
|
||||
) -> ChorusResult<Message> {
|
||||
let chorus_request = ChorusRequest {
|
||||
request: Client::new()
|
||||
.post(format!(
|
||||
"{}/channels/{}/messages/greet",
|
||||
user.belongs_to.borrow().urls.api,
|
||||
channel_id,
|
||||
))
|
||||
.header("Authorization", user.token())
|
||||
.header("Content-Type", "application/json")
|
||||
.body(to_string(&schema).unwrap()),
|
||||
limit_type: LimitType::Channel(channel_id),
|
||||
};
|
||||
chorus_request.deserialize_response::<Message>(user).await
|
||||
}
|
||||
}
|
||||
|
||||
fn search_error(result_text: String) -> ChorusError {
|
||||
|
|
|
@ -104,7 +104,7 @@ impl PartialEq for Message {
|
|||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
|
||||
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Eq, Ord, PartialOrd)]
|
||||
/// # Reference
|
||||
/// See <https://discord-userdoccers.vercel.app/resources/message#message-reference-object>
|
||||
pub struct MessageReference {
|
||||
|
@ -124,7 +124,7 @@ pub struct MessageInteraction {
|
|||
pub member: Option<Arc<RwLock<GuildMember>>>,
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
|
||||
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Eq, PartialOrd, Ord)]
|
||||
pub struct AllowedMention {
|
||||
parse: Vec<AllowedMentionType>,
|
||||
roles: Vec<Snowflake>,
|
||||
|
@ -132,7 +132,7 @@ pub struct AllowedMention {
|
|||
replied_user: bool,
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Clone, Copy, Serialize, Deserialize)]
|
||||
#[derive(Debug, PartialEq, Clone, Copy, Serialize, Deserialize, Eq, PartialOrd, Ord)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum AllowedMentionType {
|
||||
Roles,
|
||||
|
|
|
@ -96,3 +96,10 @@ impl std::default::Default for MessageSearchQuery {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq, PartialOrd, Ord)]
|
||||
pub struct CreateGreetMessage {
|
||||
pub sticker_ids: Vec<Snowflake>,
|
||||
pub allowed_mentions: Option<AllowedMention>,
|
||||
pub message_reference: Option<MessageReference>,
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue