Create Greet Message
This commit is contained in:
parent
f7d3e53a91
commit
d751c92778
|
@ -8,7 +8,8 @@ use crate::errors::{ChorusError, ChorusResult};
|
||||||
use crate::instance::UserMeta;
|
use crate::instance::UserMeta;
|
||||||
use crate::ratelimiter::ChorusRequest;
|
use crate::ratelimiter::ChorusRequest;
|
||||||
use crate::types::{
|
use crate::types::{
|
||||||
Channel, Message, MessageSearchEndpoint, MessageSearchQuery, MessageSendSchema, Snowflake,
|
Channel, CreateGreetMessage, Message, MessageSearchEndpoint, MessageSearchQuery,
|
||||||
|
MessageSendSchema, Snowflake,
|
||||||
};
|
};
|
||||||
|
|
||||||
impl Message {
|
impl Message {
|
||||||
|
@ -224,6 +225,29 @@ impl Message {
|
||||||
};
|
};
|
||||||
chorus_request.deserialize_response::<Message>(user).await
|
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 {
|
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
|
/// # Reference
|
||||||
/// See <https://discord-userdoccers.vercel.app/resources/message#message-reference-object>
|
/// See <https://discord-userdoccers.vercel.app/resources/message#message-reference-object>
|
||||||
pub struct MessageReference {
|
pub struct MessageReference {
|
||||||
|
@ -124,7 +124,7 @@ pub struct MessageInteraction {
|
||||||
pub member: Option<Arc<RwLock<GuildMember>>>,
|
pub member: Option<Arc<RwLock<GuildMember>>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
|
#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Eq, PartialOrd, Ord)]
|
||||||
pub struct AllowedMention {
|
pub struct AllowedMention {
|
||||||
parse: Vec<AllowedMentionType>,
|
parse: Vec<AllowedMentionType>,
|
||||||
roles: Vec<Snowflake>,
|
roles: Vec<Snowflake>,
|
||||||
|
@ -132,7 +132,7 @@ pub struct AllowedMention {
|
||||||
replied_user: bool,
|
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")]
|
#[serde(rename_all = "snake_case")]
|
||||||
pub enum AllowedMentionType {
|
pub enum AllowedMentionType {
|
||||||
Roles,
|
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