more consistent use of snowflakes
This commit is contained in:
parent
304cb6076a
commit
9429bd7772
|
@ -5,7 +5,7 @@ use crate::{
|
||||||
api::common,
|
api::common,
|
||||||
errors::ChorusLibError,
|
errors::ChorusLibError,
|
||||||
instance::UserMeta,
|
instance::UserMeta,
|
||||||
types::{Channel, ChannelModifySchema},
|
types::{Channel, ChannelModifySchema, Message, Snowflake},
|
||||||
};
|
};
|
||||||
|
|
||||||
impl Channel {
|
impl Channel {
|
||||||
|
@ -51,10 +51,8 @@ impl Channel {
|
||||||
self.id
|
self.id
|
||||||
))
|
))
|
||||||
.bearer_auth(user.token());
|
.bearer_auth(user.token());
|
||||||
let response =
|
common::handle_request_as_result(request, user, crate::api::limits::LimitType::Channel)
|
||||||
common::handle_request_as_result(request, user, crate::api::limits::LimitType::Channel)
|
.await
|
||||||
.await;
|
|
||||||
response
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Modifies a channel.
|
/// Modifies a channel.
|
||||||
|
@ -73,7 +71,7 @@ impl Channel {
|
||||||
/// A `Result` that contains a `Channel` object if the request was successful, or an `ChorusLibError` if an error occurred during the request.
|
/// A `Result` that contains a `Channel` object if the request was successful, or an `ChorusLibError` if an error occurred during the request.
|
||||||
pub async fn modify(
|
pub async fn modify(
|
||||||
modify_data: ChannelModifySchema,
|
modify_data: ChannelModifySchema,
|
||||||
channel_id: &str,
|
channel_id: Snowflake,
|
||||||
user: &mut UserMeta,
|
user: &mut UserMeta,
|
||||||
) -> Result<Channel, ChorusLibError> {
|
) -> Result<Channel, ChorusLibError> {
|
||||||
let request = Client::new()
|
let request = Client::new()
|
||||||
|
@ -84,13 +82,11 @@ impl Channel {
|
||||||
))
|
))
|
||||||
.bearer_auth(user.token())
|
.bearer_auth(user.token())
|
||||||
.body(to_string(&modify_data).unwrap());
|
.body(to_string(&modify_data).unwrap());
|
||||||
let channel = common::deserialize_response::<Channel>(
|
common::deserialize_response::<Channel>(
|
||||||
request,
|
request,
|
||||||
user,
|
user,
|
||||||
crate::api::limits::LimitType::Channel,
|
crate::api::limits::LimitType::Channel,
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
|
||||||
Ok(channel)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ use serde_json::to_string;
|
||||||
|
|
||||||
use crate::api::deserialize_response;
|
use crate::api::deserialize_response;
|
||||||
use crate::instance::UserMeta;
|
use crate::instance::UserMeta;
|
||||||
use crate::types::{Message, MessageSendSchema, PartialDiscordFileAttachment};
|
use crate::types::{Message, MessageSendSchema, PartialDiscordFileAttachment, Snowflake};
|
||||||
|
|
||||||
impl Message {
|
impl Message {
|
||||||
/**
|
/**
|
||||||
|
@ -21,7 +21,7 @@ impl Message {
|
||||||
*/
|
*/
|
||||||
pub async fn send(
|
pub async fn send(
|
||||||
user: &mut UserMeta,
|
user: &mut UserMeta,
|
||||||
channel_id: String,
|
channel_id: Snowflake,
|
||||||
message: &mut MessageSendSchema,
|
message: &mut MessageSendSchema,
|
||||||
files: Option<Vec<PartialDiscordFileAttachment>>,
|
files: Option<Vec<PartialDiscordFileAttachment>>,
|
||||||
) -> Result<Message, crate::errors::ChorusLibError> {
|
) -> Result<Message, crate::errors::ChorusLibError> {
|
||||||
|
@ -89,7 +89,7 @@ impl UserMeta {
|
||||||
pub async fn send_message(
|
pub async fn send_message(
|
||||||
&mut self,
|
&mut self,
|
||||||
message: &mut MessageSendSchema,
|
message: &mut MessageSendSchema,
|
||||||
channel_id: String,
|
channel_id: Snowflake,
|
||||||
files: Option<Vec<PartialDiscordFileAttachment>>,
|
files: Option<Vec<PartialDiscordFileAttachment>>,
|
||||||
) -> Result<Message, crate::errors::ChorusLibError> {
|
) -> Result<Message, crate::errors::ChorusLibError> {
|
||||||
Message::send(self, channel_id, message, files).await
|
Message::send(self, channel_id, message, files).await
|
||||||
|
|
|
@ -2,10 +2,10 @@ use reqwest::Client;
|
||||||
use serde_json::to_string;
|
use serde_json::to_string;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
api::{handle_request, handle_request_as_result},
|
api::handle_request_as_result,
|
||||||
errors::ChorusLibError,
|
errors::ChorusLibError,
|
||||||
instance::UserMeta,
|
instance::UserMeta,
|
||||||
types::{self, PermissionOverwrite},
|
types::{self, PermissionOverwrite, Snowflake},
|
||||||
};
|
};
|
||||||
|
|
||||||
impl types::Channel {
|
impl types::Channel {
|
||||||
|
@ -22,7 +22,7 @@ impl types::Channel {
|
||||||
/// This function returns a result that is either [`Ok(())`] if the request is successful, or an [`Err(ChorusLibError)`].
|
/// This function returns a result that is either [`Ok(())`] if the request is successful, or an [`Err(ChorusLibError)`].
|
||||||
pub async fn edit_permissions(
|
pub async fn edit_permissions(
|
||||||
user: &mut UserMeta,
|
user: &mut UserMeta,
|
||||||
channel_id: &str,
|
channel_id: Snowflake,
|
||||||
overwrite: PermissionOverwrite,
|
overwrite: PermissionOverwrite,
|
||||||
) -> Result<(), ChorusLibError> {
|
) -> Result<(), ChorusLibError> {
|
||||||
let url = {
|
let url = {
|
||||||
|
@ -58,8 +58,8 @@ impl types::Channel {
|
||||||
/// This function returns a Result that is either [`Ok(())`] if the request is successfulm or an [`Err(ChorusLibError)`].
|
/// This function returns a Result that is either [`Ok(())`] if the request is successfulm or an [`Err(ChorusLibError)`].
|
||||||
pub async fn delete_permission(
|
pub async fn delete_permission(
|
||||||
user: &mut UserMeta,
|
user: &mut UserMeta,
|
||||||
channel_id: &str,
|
channel_id: Snowflake,
|
||||||
overwrite_id: &str,
|
overwrite_id: Snowflake,
|
||||||
) -> Result<(), ChorusLibError> {
|
) -> Result<(), ChorusLibError> {
|
||||||
let url = format!(
|
let url = format!(
|
||||||
"{}/channels/{}/permissions/{}",
|
"{}/channels/{}/permissions/{}",
|
||||||
|
|
|
@ -1,11 +1,6 @@
|
||||||
use reqwest::Client;
|
use reqwest::Client;
|
||||||
|
|
||||||
use crate::{
|
use crate::{api::handle_request_as_result, errors::ChorusLibError, instance::UserMeta, types};
|
||||||
api::{handle_request, handle_request_as_result},
|
|
||||||
errors::ChorusLibError,
|
|
||||||
instance::UserMeta,
|
|
||||||
types,
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Useful metadata for working with [`types::Reaction`], bundled together nicely.
|
Useful metadata for working with [`types::Reaction`], bundled together nicely.
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
use crate::errors::GatewayError;
|
use crate::errors::GatewayError;
|
||||||
use crate::errors::ObserverError;
|
|
||||||
use crate::gateway::events::Events;
|
use crate::gateway::events::Events;
|
||||||
use crate::types;
|
use crate::types;
|
||||||
use crate::types::WebSocketEvent;
|
use crate::types::WebSocketEvent;
|
||||||
use std::any::Any;
|
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
use futures_util::stream::SplitSink;
|
use futures_util::stream::SplitSink;
|
||||||
|
|
|
@ -7,7 +7,7 @@ use crate::types::utils::Snowflake;
|
||||||
pub struct AuditLogEntry {
|
pub struct AuditLogEntry {
|
||||||
pub target_id: Option<String>,
|
pub target_id: Option<String>,
|
||||||
pub changes: Option<Vec<AuditLogChange>>,
|
pub changes: Option<Vec<AuditLogChange>>,
|
||||||
pub user_id: Option<String>,
|
pub user_id: Option<Snowflake>,
|
||||||
pub id: Snowflake,
|
pub id: Snowflake,
|
||||||
// to:do implement an enum for these types
|
// to:do implement an enum for these types
|
||||||
pub action_type: u8,
|
pub action_type: u8,
|
||||||
|
|
|
@ -1,9 +1,6 @@
|
||||||
use chrono::Utc;
|
use chrono::Utc;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_aux::prelude::{
|
use serde_aux::prelude::deserialize_string_from_number;
|
||||||
deserialize_number_from_string, deserialize_option_number_from_string,
|
|
||||||
deserialize_string_from_number,
|
|
||||||
};
|
|
||||||
use serde_repr::{Deserialize_repr, Serialize_repr};
|
use serde_repr::{Deserialize_repr, Serialize_repr};
|
||||||
|
|
||||||
use crate::types::{
|
use crate::types::{
|
||||||
|
@ -27,7 +24,7 @@ pub struct Channel {
|
||||||
pub name: Option<String>,
|
pub name: Option<String>,
|
||||||
pub topic: Option<String>,
|
pub topic: Option<String>,
|
||||||
pub nsfw: Option<bool>,
|
pub nsfw: Option<bool>,
|
||||||
pub last_message_id: Option<String>,
|
pub last_message_id: Option<Snowflake>,
|
||||||
pub bitrate: Option<i32>,
|
pub bitrate: Option<i32>,
|
||||||
pub user_limit: Option<i32>,
|
pub user_limit: Option<i32>,
|
||||||
pub rate_limit_per_user: Option<i32>,
|
pub rate_limit_per_user: Option<i32>,
|
||||||
|
@ -37,7 +34,7 @@ pub struct Channel {
|
||||||
pub owner_id: Option<Snowflake>,
|
pub owner_id: Option<Snowflake>,
|
||||||
pub application_id: Option<Snowflake>,
|
pub application_id: Option<Snowflake>,
|
||||||
pub managed: Option<bool>,
|
pub managed: Option<bool>,
|
||||||
pub parent_id: Option<String>,
|
pub parent_id: Option<Snowflake>,
|
||||||
pub last_pin_timestamp: Option<String>,
|
pub last_pin_timestamp: Option<String>,
|
||||||
pub rtc_region: Option<String>,
|
pub rtc_region: Option<String>,
|
||||||
pub video_quality_mode: Option<i32>,
|
pub video_quality_mode: Option<i32>,
|
||||||
|
@ -70,20 +67,16 @@ pub struct Channel {
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq)]
|
#[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq)]
|
||||||
pub struct Tag {
|
pub struct Tag {
|
||||||
#[serde(default)]
|
pub id: Snowflake,
|
||||||
#[serde(deserialize_with = "deserialize_number_from_string")]
|
|
||||||
pub id: u64,
|
|
||||||
pub name: String,
|
pub name: String,
|
||||||
pub moderated: bool,
|
pub moderated: bool,
|
||||||
#[serde(default)]
|
pub emoji_id: Option<Snowflake>,
|
||||||
#[serde(deserialize_with = "deserialize_option_number_from_string")]
|
|
||||||
pub emoji_id: Option<u64>,
|
|
||||||
pub emoji_name: Option<String>,
|
pub emoji_name: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
|
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq)]
|
||||||
pub struct PermissionOverwrite {
|
pub struct PermissionOverwrite {
|
||||||
pub id: String,
|
pub id: Snowflake,
|
||||||
#[serde(rename = "type")]
|
#[serde(rename = "type")]
|
||||||
#[serde(deserialize_with = "deserialize_string_from_number")]
|
#[serde(deserialize_with = "deserialize_string_from_number")]
|
||||||
pub overwrite_type: String,
|
pub overwrite_type: String,
|
||||||
|
@ -107,8 +100,8 @@ pub struct ThreadMetadata {
|
||||||
|
|
||||||
#[derive(Default, Debug, Deserialize, Serialize, Clone, PartialEq, Eq)]
|
#[derive(Default, Debug, Deserialize, Serialize, Clone, PartialEq, Eq)]
|
||||||
pub struct ThreadMember {
|
pub struct ThreadMember {
|
||||||
pub id: Option<u64>,
|
pub id: Option<Snowflake>,
|
||||||
pub user_id: Option<u64>,
|
pub user_id: Option<Snowflake>,
|
||||||
pub join_timestamp: Option<String>,
|
pub join_timestamp: Option<String>,
|
||||||
pub flags: Option<u64>,
|
pub flags: Option<u64>,
|
||||||
pub member: Option<GuildMember>,
|
pub member: Option<GuildMember>,
|
||||||
|
@ -117,8 +110,7 @@ pub struct ThreadMember {
|
||||||
#[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq)]
|
#[derive(Debug, Deserialize, Serialize, Clone, PartialEq, Eq)]
|
||||||
pub struct DefaultReaction {
|
pub struct DefaultReaction {
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
#[serde(deserialize_with = "deserialize_option_number_from_string")]
|
pub emoji_id: Option<Snowflake>,
|
||||||
pub emoji_id: Option<u64>,
|
|
||||||
pub emoji_name: Option<String>,
|
pub emoji_name: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,7 @@ pub struct Guild {
|
||||||
pub afk_channel_id: Option<Snowflake>,
|
pub afk_channel_id: Option<Snowflake>,
|
||||||
pub afk_timeout: Option<i32>,
|
pub afk_timeout: Option<i32>,
|
||||||
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
||||||
pub application_id: Option<String>,
|
pub application_id: Option<Snowflake>,
|
||||||
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
||||||
pub approximate_member_count: Option<i32>,
|
pub approximate_member_count: Option<i32>,
|
||||||
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
||||||
|
@ -110,13 +110,13 @@ pub struct GuildInvite {
|
||||||
pub max_age: Option<i32>,
|
pub max_age: Option<i32>,
|
||||||
pub created_at: DateTime<Utc>,
|
pub created_at: DateTime<Utc>,
|
||||||
pub expires_at: Option<DateTime<Utc>>,
|
pub expires_at: Option<DateTime<Utc>>,
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub guild: Option<Guild>,
|
pub guild: Option<Guild>,
|
||||||
pub channel_id: String,
|
pub channel_id: Snowflake,
|
||||||
pub channel: Option<Channel>,
|
pub channel: Option<Channel>,
|
||||||
pub inviter_id: Option<String>,
|
pub inviter_id: Option<Snowflake>,
|
||||||
pub inviter: Option<User>,
|
pub inviter: Option<User>,
|
||||||
pub target_user_id: Option<String>,
|
pub target_user_id: Option<Snowflake>,
|
||||||
pub target_user: Option<String>,
|
pub target_user: Option<String>,
|
||||||
pub target_user_type: Option<i32>,
|
pub target_user_type: Option<i32>,
|
||||||
pub vanity_url: Option<bool>,
|
pub vanity_url: Option<bool>,
|
||||||
|
@ -124,22 +124,22 @@ pub struct GuildInvite {
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Debug, Default, Clone, PartialEq)]
|
#[derive(Serialize, Deserialize, Debug, Default, Clone, PartialEq)]
|
||||||
pub struct UnavailableGuild {
|
pub struct UnavailableGuild {
|
||||||
id: String,
|
id: Snowflake,
|
||||||
unavailable: bool,
|
unavailable: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Debug, Default, Clone, PartialEq)]
|
#[derive(Serialize, Deserialize, Debug, Default, Clone, PartialEq)]
|
||||||
pub struct GuildCreateResponse {
|
pub struct GuildCreateResponse {
|
||||||
pub id: String,
|
pub id: Snowflake,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Debug, Default, Clone)]
|
#[derive(Serialize, Deserialize, Debug, Default, Clone)]
|
||||||
/// See https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object
|
/// See https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object
|
||||||
pub struct GuildScheduledEvent {
|
pub struct GuildScheduledEvent {
|
||||||
pub id: String,
|
pub id: Snowflake,
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub channel_id: Option<String>,
|
pub channel_id: Option<Snowflake>,
|
||||||
pub creator_id: Option<String>,
|
pub creator_id: Option<Snowflake>,
|
||||||
pub name: String,
|
pub name: String,
|
||||||
pub description: String,
|
pub description: String,
|
||||||
pub scheduled_start_time: DateTime<Utc>,
|
pub scheduled_start_time: DateTime<Utc>,
|
||||||
|
@ -147,7 +147,7 @@ pub struct GuildScheduledEvent {
|
||||||
pub privacy_level: GuildScheduledEventPrivacyLevel,
|
pub privacy_level: GuildScheduledEventPrivacyLevel,
|
||||||
pub status: GuildScheduledEventStatus,
|
pub status: GuildScheduledEventStatus,
|
||||||
pub entity_type: GuildScheduledEventEntityType,
|
pub entity_type: GuildScheduledEventEntityType,
|
||||||
pub entity_id: Option<String>,
|
pub entity_id: Option<Snowflake>,
|
||||||
pub entity_metadata: Option<GuildScheduledEventEntityMetadata>,
|
pub entity_metadata: Option<GuildScheduledEventEntityMetadata>,
|
||||||
pub creator: Option<User>,
|
pub creator: Option<User>,
|
||||||
pub user_count: Option<u64>,
|
pub user_count: Option<u64>,
|
||||||
|
|
|
@ -19,7 +19,7 @@ pub struct GuildTemplate {
|
||||||
pub creator: User,
|
pub creator: User,
|
||||||
pub created_at: DateTime<Utc>,
|
pub created_at: DateTime<Utc>,
|
||||||
pub updated_at: DateTime<Utc>,
|
pub updated_at: DateTime<Utc>,
|
||||||
pub source_guild_id: String,
|
pub source_guild_id: Snowflake,
|
||||||
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
#[cfg_attr(feature = "sqlx", sqlx(skip))]
|
||||||
pub source_guild: Vec<Guild>,
|
pub source_guild: Vec<Guild>,
|
||||||
// Unsure how a {recursive: Guild} looks like, might be a Vec?
|
// Unsure how a {recursive: Guild} looks like, might be a Vec?
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use crate::types::{VoiceState, WebSocketEvent};
|
use crate::types::{Snowflake, VoiceState, WebSocketEvent};
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize, Default, Clone)]
|
#[derive(Debug, Deserialize, Serialize, Default, Clone)]
|
||||||
/// Officially Undocumented;
|
/// Officially Undocumented;
|
||||||
|
@ -13,10 +13,10 @@ pub struct CallCreate {
|
||||||
pub ringing: Vec<String>,
|
pub ringing: Vec<String>,
|
||||||
pub region: String,
|
pub region: String,
|
||||||
// milan
|
// milan
|
||||||
pub message_id: String,
|
pub message_id: Snowflake,
|
||||||
/// What is this?
|
/// What is this?
|
||||||
pub embedded_activities: Vec<serde_json::Value>,
|
pub embedded_activities: Vec<serde_json::Value>,
|
||||||
pub channel_id: String,
|
pub channel_id: Snowflake,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for CallCreate {}
|
impl WebSocketEvent for CallCreate {}
|
||||||
|
@ -28,12 +28,12 @@ impl WebSocketEvent for CallCreate {}
|
||||||
/// Ex: {"t":"CALL_UPDATE","s":5,"op":0,"d":{"ringing":["837606544539254834"],"region":"milan","message_id":"1107191540234846308","guild_id":null,"channel_id":"837609115475771392"}}
|
/// Ex: {"t":"CALL_UPDATE","s":5,"op":0,"d":{"ringing":["837606544539254834"],"region":"milan","message_id":"1107191540234846308","guild_id":null,"channel_id":"837609115475771392"}}
|
||||||
pub struct CallUpdate {
|
pub struct CallUpdate {
|
||||||
/// Seems like a vec of channel ids
|
/// Seems like a vec of channel ids
|
||||||
pub ringing: Vec<String>,
|
pub ringing: Vec<Snowflake>,
|
||||||
pub region: String,
|
pub region: String,
|
||||||
// milan
|
// milan
|
||||||
pub message_id: String,
|
pub message_id: Snowflake,
|
||||||
pub guild_id: Option<String>,
|
pub guild_id: Option<Snowflake>,
|
||||||
pub channel_id: String,
|
pub channel_id: Snowflake,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for CallUpdate {}
|
impl WebSocketEvent for CallUpdate {}
|
||||||
|
@ -43,7 +43,7 @@ impl WebSocketEvent for CallUpdate {}
|
||||||
/// Deletes a ringing call;
|
/// Deletes a ringing call;
|
||||||
/// Ex: {"t":"CALL_DELETE","s":8,"op":0,"d":{"channel_id":"837609115475771392"}}
|
/// Ex: {"t":"CALL_DELETE","s":8,"op":0,"d":{"channel_id":"837609115475771392"}}
|
||||||
pub struct CallDelete {
|
pub struct CallDelete {
|
||||||
pub channel_id: String,
|
pub channel_id: Snowflake,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for CallDelete {}
|
impl WebSocketEvent for CallDelete {}
|
||||||
|
@ -54,7 +54,7 @@ impl WebSocketEvent for CallDelete {}
|
||||||
///
|
///
|
||||||
/// Ex: {"op":13,"d":{"channel_id":"837609115475771392"}}
|
/// Ex: {"op":13,"d":{"channel_id":"837609115475771392"}}
|
||||||
pub struct CallSync {
|
pub struct CallSync {
|
||||||
pub channel_id: String,
|
pub channel_id: Snowflake,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for CallSync {}
|
impl WebSocketEvent for CallSync {}
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
use crate::types::entities::Channel;
|
|
||||||
use crate::types::events::WebSocketEvent;
|
use crate::types::events::WebSocketEvent;
|
||||||
|
use crate::types::{entities::Channel, Snowflake};
|
||||||
use chrono::{DateTime, Utc};
|
use chrono::{DateTime, Utc};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
#[derive(Debug, Default, Deserialize, Serialize)]
|
#[derive(Debug, Default, Deserialize, Serialize)]
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#channel-pins-update
|
/// See https://discord.com/developers/docs/topics/gateway-events#channel-pins-update
|
||||||
pub struct ChannelPinsUpdate {
|
pub struct ChannelPinsUpdate {
|
||||||
pub guild_id: Option<String>,
|
pub guild_id: Option<Snowflake>,
|
||||||
pub channel_id: String,
|
pub channel_id: Snowflake,
|
||||||
pub last_pin_timestamp: Option<DateTime<Utc>>,
|
pub last_pin_timestamp: Option<DateTime<Utc>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,15 +37,15 @@ impl WebSocketEvent for ChannelUpdate {}
|
||||||
/// {"channel_unread_updates": [{"id": "816412869766938648", "last_message_id": "1085892012085104680"}}
|
/// {"channel_unread_updates": [{"id": "816412869766938648", "last_message_id": "1085892012085104680"}}
|
||||||
pub struct ChannelUnreadUpdate {
|
pub struct ChannelUnreadUpdate {
|
||||||
pub channel_unread_updates: Vec<ChannelUnreadUpdateObject>,
|
pub channel_unread_updates: Vec<ChannelUnreadUpdateObject>,
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
||||||
/// Contains very few fields from [Channel]
|
/// Contains very few fields from [Channel]
|
||||||
/// See also [ChannelUnreadUpdates]
|
/// See also [ChannelUnreadUpdates]
|
||||||
pub struct ChannelUnreadUpdateObject {
|
pub struct ChannelUnreadUpdateObject {
|
||||||
pub id: String,
|
pub id: Snowflake,
|
||||||
pub last_message_id: String,
|
pub last_message_id: Snowflake,
|
||||||
pub last_pin_timestamp: Option<String>,
|
pub last_pin_timestamp: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,9 @@ use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use crate::types::entities::{Guild, PublicUser, UnavailableGuild};
|
use crate::types::entities::{Guild, PublicUser, UnavailableGuild};
|
||||||
use crate::types::events::WebSocketEvent;
|
use crate::types::events::WebSocketEvent;
|
||||||
use crate::types::{AuditLogEntry, Emoji, GuildMember, GuildScheduledEvent, RoleObject, Sticker};
|
use crate::types::{
|
||||||
|
AuditLogEntry, Emoji, GuildMember, GuildScheduledEvent, RoleObject, Snowflake, Sticker,
|
||||||
|
};
|
||||||
|
|
||||||
use super::PresenceUpdate;
|
use super::PresenceUpdate;
|
||||||
|
|
||||||
|
@ -35,7 +37,7 @@ impl WebSocketEvent for GuildCreate {}
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#guild-ban-add-guild-ban-add-event-fields;
|
/// See https://discord.com/developers/docs/topics/gateway-events#guild-ban-add-guild-ban-add-event-fields;
|
||||||
/// Received to give info about a user being banned from a guild;
|
/// Received to give info about a user being banned from a guild;
|
||||||
pub struct GuildBanAdd {
|
pub struct GuildBanAdd {
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub user: PublicUser,
|
pub user: PublicUser,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,7 +47,7 @@ impl WebSocketEvent for GuildBanAdd {}
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#guild-ban-remove;
|
/// See https://discord.com/developers/docs/topics/gateway-events#guild-ban-remove;
|
||||||
/// Received to give info about a user being unbanned from a guild;
|
/// Received to give info about a user being unbanned from a guild;
|
||||||
pub struct GuildBanRemove {
|
pub struct GuildBanRemove {
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub user: PublicUser,
|
pub user: PublicUser,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,7 +87,7 @@ impl WebSocketEvent for GuildAuditLogEntryCreate {}
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#guild-emojis-update;
|
/// See https://discord.com/developers/docs/topics/gateway-events#guild-emojis-update;
|
||||||
/// Received to tell the client about a change to a guild's emoji list;
|
/// Received to tell the client about a change to a guild's emoji list;
|
||||||
pub struct GuildEmojisUpdate {
|
pub struct GuildEmojisUpdate {
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub emojis: Vec<Emoji>,
|
pub emojis: Vec<Emoji>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,7 +97,7 @@ impl WebSocketEvent for GuildEmojisUpdate {}
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#guild-stickers-update;
|
/// See https://discord.com/developers/docs/topics/gateway-events#guild-stickers-update;
|
||||||
/// Received to tell the client about a change to a guild's sticker list;
|
/// Received to tell the client about a change to a guild's sticker list;
|
||||||
pub struct GuildStickersUpdate {
|
pub struct GuildStickersUpdate {
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub stickers: Vec<Sticker>,
|
pub stickers: Vec<Sticker>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,7 +106,7 @@ impl WebSocketEvent for GuildStickersUpdate {}
|
||||||
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#guild-integrations-update
|
/// See https://discord.com/developers/docs/topics/gateway-events#guild-integrations-update
|
||||||
pub struct GuildIntegrationsUpdate {
|
pub struct GuildIntegrationsUpdate {
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for GuildIntegrationsUpdate {}
|
impl WebSocketEvent for GuildIntegrationsUpdate {}
|
||||||
|
@ -115,7 +117,7 @@ impl WebSocketEvent for GuildIntegrationsUpdate {}
|
||||||
pub struct GuildMemberAdd {
|
pub struct GuildMemberAdd {
|
||||||
#[serde(flatten)]
|
#[serde(flatten)]
|
||||||
pub member: GuildMember,
|
pub member: GuildMember,
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for GuildMemberAdd {}
|
impl WebSocketEvent for GuildMemberAdd {}
|
||||||
|
@ -124,7 +126,7 @@ impl WebSocketEvent for GuildMemberAdd {}
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#guild-member-remove;
|
/// See https://discord.com/developers/docs/topics/gateway-events#guild-member-remove;
|
||||||
/// Received to tell the client about a user leaving a guild;
|
/// Received to tell the client about a user leaving a guild;
|
||||||
pub struct GuildMemberRemove {
|
pub struct GuildMemberRemove {
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub user: PublicUser,
|
pub user: PublicUser,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,8 +135,8 @@ impl WebSocketEvent for GuildMemberRemove {}
|
||||||
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#guild-member-update
|
/// See https://discord.com/developers/docs/topics/gateway-events#guild-member-update
|
||||||
pub struct GuildMemberUpdate {
|
pub struct GuildMemberUpdate {
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub roles: Vec<String>,
|
pub roles: Vec<Snowflake>,
|
||||||
pub user: PublicUser,
|
pub user: PublicUser,
|
||||||
pub nick: Option<String>,
|
pub nick: Option<String>,
|
||||||
pub avatar: Option<String>,
|
pub avatar: Option<String>,
|
||||||
|
@ -151,11 +153,11 @@ impl WebSocketEvent for GuildMemberUpdate {}
|
||||||
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#guild-members-chunk
|
/// See https://discord.com/developers/docs/topics/gateway-events#guild-members-chunk
|
||||||
pub struct GuildMembersChunk {
|
pub struct GuildMembersChunk {
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub members: Vec<GuildMember>,
|
pub members: Vec<GuildMember>,
|
||||||
pub chunk_index: u16,
|
pub chunk_index: u16,
|
||||||
pub chunk_count: u16,
|
pub chunk_count: u16,
|
||||||
pub not_found: Option<Vec<String>>,
|
pub not_found: Option<Vec<Snowflake>>,
|
||||||
pub presences: Option<PresenceUpdate>,
|
pub presences: Option<PresenceUpdate>,
|
||||||
pub nonce: Option<String>,
|
pub nonce: Option<String>,
|
||||||
}
|
}
|
||||||
|
@ -165,7 +167,7 @@ impl WebSocketEvent for GuildMembersChunk {}
|
||||||
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#guild-role-create
|
/// See https://discord.com/developers/docs/topics/gateway-events#guild-role-create
|
||||||
pub struct GuildRoleCreate {
|
pub struct GuildRoleCreate {
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub role: RoleObject,
|
pub role: RoleObject,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -174,7 +176,7 @@ impl WebSocketEvent for GuildRoleCreate {}
|
||||||
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#guild-role-update
|
/// See https://discord.com/developers/docs/topics/gateway-events#guild-role-update
|
||||||
pub struct GuildRoleUpdate {
|
pub struct GuildRoleUpdate {
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub role: RoleObject,
|
pub role: RoleObject,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -183,8 +185,8 @@ impl WebSocketEvent for GuildRoleUpdate {}
|
||||||
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#guild-role-delete
|
/// See https://discord.com/developers/docs/topics/gateway-events#guild-role-delete
|
||||||
pub struct GuildRoleDelete {
|
pub struct GuildRoleDelete {
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub role_id: String,
|
pub role_id: Snowflake,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for GuildRoleDelete {}
|
impl WebSocketEvent for GuildRoleDelete {}
|
||||||
|
@ -219,9 +221,9 @@ impl WebSocketEvent for GuildScheduledEventDelete {}
|
||||||
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#guild-scheduled-event-user-add
|
/// See https://discord.com/developers/docs/topics/gateway-events#guild-scheduled-event-user-add
|
||||||
pub struct GuildScheduledEventUserAdd {
|
pub struct GuildScheduledEventUserAdd {
|
||||||
pub guild_scheduled_event_id: String,
|
pub guild_scheduled_event_id: Snowflake,
|
||||||
pub user_id: String,
|
pub user_id: Snowflake,
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for GuildScheduledEventUserAdd {}
|
impl WebSocketEvent for GuildScheduledEventUserAdd {}
|
||||||
|
@ -229,9 +231,9 @@ impl WebSocketEvent for GuildScheduledEventUserAdd {}
|
||||||
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#guild-scheduled-event-user-remove
|
/// See https://discord.com/developers/docs/topics/gateway-events#guild-scheduled-event-user-remove
|
||||||
pub struct GuildScheduledEventUserRemove {
|
pub struct GuildScheduledEventUserRemove {
|
||||||
pub guild_scheduled_event_id: String,
|
pub guild_scheduled_event_id: Snowflake,
|
||||||
pub user_id: String,
|
pub user_id: Snowflake,
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for GuildScheduledEventUserRemove {}
|
impl WebSocketEvent for GuildScheduledEventUserRemove {}
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use crate::types::{Integration, WebSocketEvent};
|
use crate::types::{Integration, Snowflake, WebSocketEvent};
|
||||||
|
|
||||||
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#integration-create
|
/// See https://discord.com/developers/docs/topics/gateway-events#integration-create
|
||||||
pub struct IntegrationCreate {
|
pub struct IntegrationCreate {
|
||||||
#[serde(flatten)]
|
#[serde(flatten)]
|
||||||
pub integration: Integration,
|
pub integration: Integration,
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for IntegrationCreate {}
|
impl WebSocketEvent for IntegrationCreate {}
|
||||||
|
@ -17,7 +17,7 @@ impl WebSocketEvent for IntegrationCreate {}
|
||||||
pub struct IntegrationUpdate {
|
pub struct IntegrationUpdate {
|
||||||
#[serde(flatten)]
|
#[serde(flatten)]
|
||||||
pub integration: Integration,
|
pub integration: Integration,
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for IntegrationUpdate {}
|
impl WebSocketEvent for IntegrationUpdate {}
|
||||||
|
@ -25,9 +25,9 @@ impl WebSocketEvent for IntegrationUpdate {}
|
||||||
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#integration-delete
|
/// See https://discord.com/developers/docs/topics/gateway-events#integration-delete
|
||||||
pub struct IntegrationDelete {
|
pub struct IntegrationDelete {
|
||||||
pub id: String,
|
pub id: Snowflake,
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub application_id: Option<String>,
|
pub application_id: Option<Snowflake>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for IntegrationDelete {}
|
impl WebSocketEvent for IntegrationDelete {}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use crate::types::{GuildInvite, WebSocketEvent};
|
use crate::types::{GuildInvite, Snowflake, WebSocketEvent};
|
||||||
|
|
||||||
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#invite-create
|
/// See https://discord.com/developers/docs/topics/gateway-events#invite-create
|
||||||
|
@ -14,8 +14,8 @@ impl WebSocketEvent for InviteCreate {}
|
||||||
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#invite-delete
|
/// See https://discord.com/developers/docs/topics/gateway-events#invite-delete
|
||||||
pub struct InviteDelete {
|
pub struct InviteDelete {
|
||||||
pub channel_id: String,
|
pub channel_id: Snowflake,
|
||||||
pub guild_id: Option<String>,
|
pub guild_id: Option<Snowflake>,
|
||||||
pub code: String,
|
pub code: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,8 @@ use std::collections::HashMap;
|
||||||
|
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
|
use crate::types::Snowflake;
|
||||||
|
|
||||||
use super::WebSocketEvent;
|
use super::WebSocketEvent;
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize, Default, Clone)]
|
#[derive(Debug, Deserialize, Serialize, Default, Clone)]
|
||||||
|
@ -15,7 +17,7 @@ use super::WebSocketEvent;
|
||||||
///
|
///
|
||||||
/// {"op":14,"d":{"guild_id":"848582562217590824","typing":true,"activities":true,"threads":true}}
|
/// {"op":14,"d":{"guild_id":"848582562217590824","typing":true,"activities":true,"threads":true}}
|
||||||
pub struct LazyRequest {
|
pub struct LazyRequest {
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub typing: bool,
|
pub typing: bool,
|
||||||
pub activities: bool,
|
pub activities: bool,
|
||||||
pub threads: bool,
|
pub threads: bool,
|
||||||
|
|
|
@ -1,14 +1,17 @@
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use crate::types::entities::{Emoji, GuildMember, Message, PublicUser};
|
use crate::types::{
|
||||||
|
entities::{Emoji, GuildMember, Message, PublicUser},
|
||||||
|
Snowflake,
|
||||||
|
};
|
||||||
|
|
||||||
use super::WebSocketEvent;
|
use super::WebSocketEvent;
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize, Default, Clone)]
|
#[derive(Debug, Deserialize, Serialize, Default, Clone)]
|
||||||
pub struct TypingStartEvent {
|
pub struct TypingStartEvent {
|
||||||
pub channel_id: String,
|
pub channel_id: Snowflake,
|
||||||
pub guild_id: Option<String>,
|
pub guild_id: Option<Snowflake>,
|
||||||
pub user_id: String,
|
pub user_id: Snowflake,
|
||||||
pub timestamp: i64,
|
pub timestamp: i64,
|
||||||
pub member: Option<GuildMember>,
|
pub member: Option<GuildMember>,
|
||||||
}
|
}
|
||||||
|
@ -20,7 +23,7 @@ impl WebSocketEvent for TypingStartEvent {}
|
||||||
pub struct MessageCreate {
|
pub struct MessageCreate {
|
||||||
#[serde(flatten)]
|
#[serde(flatten)]
|
||||||
message: Message,
|
message: Message,
|
||||||
guild_id: Option<String>,
|
guild_id: Option<Snowflake>,
|
||||||
member: Option<GuildMember>,
|
member: Option<GuildMember>,
|
||||||
mentions: Option<Vec<MessageCreateUser>>,
|
mentions: Option<Vec<MessageCreateUser>>,
|
||||||
}
|
}
|
||||||
|
@ -39,7 +42,7 @@ impl WebSocketEvent for MessageCreate {}
|
||||||
pub struct MessageUpdate {
|
pub struct MessageUpdate {
|
||||||
#[serde(flatten)]
|
#[serde(flatten)]
|
||||||
message: Message,
|
message: Message,
|
||||||
guild_id: Option<String>,
|
guild_id: Option<Snowflake>,
|
||||||
member: Option<GuildMember>,
|
member: Option<GuildMember>,
|
||||||
mentions: Option<Vec<MessageCreateUser>>,
|
mentions: Option<Vec<MessageCreateUser>>,
|
||||||
}
|
}
|
||||||
|
@ -48,28 +51,28 @@ impl WebSocketEvent for MessageUpdate {}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize, Default, Clone)]
|
#[derive(Debug, Serialize, Deserialize, Default, Clone)]
|
||||||
pub struct MessageDelete {
|
pub struct MessageDelete {
|
||||||
id: String,
|
id: Snowflake,
|
||||||
channel_id: String,
|
channel_id: Snowflake,
|
||||||
guild_id: Option<String>,
|
guild_id: Option<Snowflake>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for MessageDelete {}
|
impl WebSocketEvent for MessageDelete {}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize, Default, Clone)]
|
#[derive(Debug, Serialize, Deserialize, Default, Clone)]
|
||||||
pub struct MessageDeleteBulk {
|
pub struct MessageDeleteBulk {
|
||||||
ids: Vec<String>,
|
ids: Vec<Snowflake>,
|
||||||
channel_id: String,
|
channel_id: Snowflake,
|
||||||
guild_id: Option<String>,
|
guild_id: Option<Snowflake>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for MessageDeleteBulk {}
|
impl WebSocketEvent for MessageDeleteBulk {}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize, Default, Clone)]
|
#[derive(Debug, Serialize, Deserialize, Default, Clone)]
|
||||||
pub struct MessageReactionAdd {
|
pub struct MessageReactionAdd {
|
||||||
user_id: String,
|
user_id: Snowflake,
|
||||||
channel_id: String,
|
channel_id: Snowflake,
|
||||||
message_id: String,
|
message_id: Snowflake,
|
||||||
guild_id: Option<String>,
|
guild_id: Option<Snowflake>,
|
||||||
member: Option<GuildMember>,
|
member: Option<GuildMember>,
|
||||||
emoji: Emoji,
|
emoji: Emoji,
|
||||||
}
|
}
|
||||||
|
@ -78,10 +81,10 @@ impl WebSocketEvent for MessageReactionAdd {}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize, Default, Clone)]
|
#[derive(Debug, Serialize, Deserialize, Default, Clone)]
|
||||||
pub struct MessageReactionRemove {
|
pub struct MessageReactionRemove {
|
||||||
user_id: String,
|
user_id: Snowflake,
|
||||||
channel_id: String,
|
channel_id: Snowflake,
|
||||||
message_id: String,
|
message_id: Snowflake,
|
||||||
guild_id: Option<String>,
|
guild_id: Option<Snowflake>,
|
||||||
emoji: Emoji,
|
emoji: Emoji,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,18 +92,18 @@ impl WebSocketEvent for MessageReactionRemove {}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize, Default, Clone)]
|
#[derive(Debug, Serialize, Deserialize, Default, Clone)]
|
||||||
pub struct MessageReactionRemoveAll {
|
pub struct MessageReactionRemoveAll {
|
||||||
channel_id: String,
|
channel_id: Snowflake,
|
||||||
message_id: String,
|
message_id: Snowflake,
|
||||||
guild_id: Option<String>,
|
guild_id: Option<Snowflake>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for MessageReactionRemoveAll {}
|
impl WebSocketEvent for MessageReactionRemoveAll {}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize, Default, Clone)]
|
#[derive(Debug, Serialize, Deserialize, Default, Clone)]
|
||||||
pub struct MessageReactionRemoveEmoji {
|
pub struct MessageReactionRemoveEmoji {
|
||||||
channel_id: String,
|
channel_id: Snowflake,
|
||||||
message_id: String,
|
message_id: Snowflake,
|
||||||
guild_id: Option<String>,
|
guild_id: Option<Snowflake>,
|
||||||
emoji: Emoji,
|
emoji: Emoji,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -118,13 +121,13 @@ impl WebSocketEvent for MessageReactionRemoveEmoji {}
|
||||||
pub struct MessageACK {
|
pub struct MessageACK {
|
||||||
/// ?
|
/// ?
|
||||||
pub version: u16,
|
pub version: u16,
|
||||||
pub message_id: String,
|
pub message_id: Snowflake,
|
||||||
/// This is an integer???
|
/// This is an integer???
|
||||||
/// Not even unix, see '3070'???
|
/// Not even unix, see '3070'???
|
||||||
pub last_viewed: Option<u64>,
|
pub last_viewed: Option<u64>,
|
||||||
/// What flags?
|
/// What flags?
|
||||||
pub flags: Option<serde_json::Value>,
|
pub flags: Option<serde_json::Value>,
|
||||||
pub channel_id: String,
|
pub channel_id: Snowflake,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for MessageACK {}
|
impl WebSocketEvent for MessageACK {}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use super::{ChannelUnreadUpdateObject, WebSocketEvent};
|
use super::{ChannelUnreadUpdateObject, WebSocketEvent};
|
||||||
use crate::types::{GuildMember, VoiceState};
|
use crate::types::{GuildMember, Snowflake, VoiceState};
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize, Default)]
|
#[derive(Debug, Deserialize, Serialize, Default)]
|
||||||
/// Officially Undocumented
|
/// Officially Undocumented
|
||||||
|
@ -10,7 +10,7 @@ use crate::types::{GuildMember, VoiceState};
|
||||||
pub struct PassiveUpdateV1 {
|
pub struct PassiveUpdateV1 {
|
||||||
pub voice_states: Vec<VoiceState>,
|
pub voice_states: Vec<VoiceState>,
|
||||||
pub members: Option<Vec<GuildMember>>,
|
pub members: Option<Vec<GuildMember>>,
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub channels: Vec<ChannelUnreadUpdateObject>,
|
pub channels: Vec<ChannelUnreadUpdateObject>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
use crate::types::events::WebSocketEvent;
|
use crate::types::{events::WebSocketEvent, Snowflake};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize, Default)]
|
#[derive(Debug, Deserialize, Serialize, Default)]
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#request-guild-members-request-guild-members-structure
|
/// See https://discord.com/developers/docs/topics/gateway-events#request-guild-members-request-guild-members-structure
|
||||||
pub struct GatewayRequestGuildMembers {
|
pub struct GatewayRequestGuildMembers {
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub query: Option<String>,
|
pub query: Option<String>,
|
||||||
pub limit: u64,
|
pub limit: u64,
|
||||||
pub presences: Option<bool>,
|
pub presences: Option<bool>,
|
||||||
pub user_ids: Option<String>,
|
// TODO: allow array
|
||||||
|
pub user_ids: Option<Snowflake>,
|
||||||
pub nonce: Option<String>,
|
pub nonce: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use crate::types::entities::{Channel, ThreadMember};
|
use crate::types::entities::{Channel, ThreadMember};
|
||||||
use crate::types::events::WebSocketEvent;
|
use crate::types::events::WebSocketEvent;
|
||||||
|
use crate::types::Snowflake;
|
||||||
|
|
||||||
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#thread-create
|
/// See https://discord.com/developers/docs/topics/gateway-events#thread-create
|
||||||
|
@ -33,8 +34,8 @@ impl WebSocketEvent for ThreadDelete {}
|
||||||
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#thread-list-sync
|
/// See https://discord.com/developers/docs/topics/gateway-events#thread-list-sync
|
||||||
pub struct ThreadListSync {
|
pub struct ThreadListSync {
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub channel_ids: Option<Vec<String>>,
|
pub channel_ids: Option<Vec<Snowflake>>,
|
||||||
pub threads: Vec<Channel>,
|
pub threads: Vec<Channel>,
|
||||||
pub members: Option<Vec<ThreadMember>>,
|
pub members: Option<Vec<ThreadMember>>,
|
||||||
}
|
}
|
||||||
|
@ -47,7 +48,7 @@ impl WebSocketEvent for ThreadListSync {}
|
||||||
pub struct ThreadMemberUpdate {
|
pub struct ThreadMemberUpdate {
|
||||||
#[serde(flatten)]
|
#[serde(flatten)]
|
||||||
pub member: ThreadMember,
|
pub member: ThreadMember,
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for ThreadMemberUpdate {}
|
impl WebSocketEvent for ThreadMemberUpdate {}
|
||||||
|
@ -55,12 +56,12 @@ impl WebSocketEvent for ThreadMemberUpdate {}
|
||||||
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#thread-members-update
|
/// See https://discord.com/developers/docs/topics/gateway-events#thread-members-update
|
||||||
pub struct ThreadMembersUpdate {
|
pub struct ThreadMembersUpdate {
|
||||||
pub id: String,
|
pub id: Snowflake,
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
/// Capped at 50
|
/// Capped at 50
|
||||||
pub member_count: u8,
|
pub member_count: u8,
|
||||||
pub added_members: Option<Vec<ThreadMember>>,
|
pub added_members: Option<Vec<ThreadMember>>,
|
||||||
pub removed_members: Option<Vec<String>>,
|
pub removed_members: Option<Vec<Snowflake>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for ThreadMembersUpdate {}
|
impl WebSocketEvent for ThreadMembersUpdate {}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use crate::types::{events::WebSocketEvent, VoiceState};
|
use crate::types::{events::WebSocketEvent, Snowflake, VoiceState};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize, Default)]
|
#[derive(Debug, Deserialize, Serialize, Default)]
|
||||||
|
@ -7,8 +7,8 @@ use serde::{Deserialize, Serialize};
|
||||||
///
|
///
|
||||||
/// Not to be confused with [VoiceStateUpdate];
|
/// Not to be confused with [VoiceStateUpdate];
|
||||||
pub struct UpdateVoiceState {
|
pub struct UpdateVoiceState {
|
||||||
pub guild_id: Option<String>,
|
pub guild_id: Option<Snowflake>,
|
||||||
pub channel_id: Option<String>,
|
pub channel_id: Option<Snowflake>,
|
||||||
pub self_mute: bool,
|
pub self_mute: bool,
|
||||||
pub self_deaf: bool,
|
pub self_deaf: bool,
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ impl WebSocketEvent for VoiceStateUpdate {}
|
||||||
/// Received to indicate which voice endpoint, token and guild_id to use;
|
/// Received to indicate which voice endpoint, token and guild_id to use;
|
||||||
pub struct VoiceServerUpdate {
|
pub struct VoiceServerUpdate {
|
||||||
pub token: String,
|
pub token: String,
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub endpoint: Option<String>,
|
pub endpoint: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
|
use crate::types::Snowflake;
|
||||||
|
|
||||||
use super::WebSocketEvent;
|
use super::WebSocketEvent;
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize, Default, Clone)]
|
#[derive(Debug, Deserialize, Serialize, Default, Clone)]
|
||||||
/// See https://discord.com/developers/docs/topics/gateway-events#webhooks-update
|
/// See https://discord.com/developers/docs/topics/gateway-events#webhooks-update
|
||||||
pub struct WebhooksUpdate {
|
pub struct WebhooksUpdate {
|
||||||
pub guild_id: String,
|
pub guild_id: Snowflake,
|
||||||
pub channel_id: String,
|
pub channel_id: Snowflake,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl WebSocketEvent for WebhooksUpdate {}
|
impl WebSocketEvent for WebhooksUpdate {}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use crate::types::entities::Emoji;
|
use crate::types::{entities::Emoji, Snowflake};
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize, Clone)]
|
#[derive(Debug, Deserialize, Serialize, Clone)]
|
||||||
pub struct Activity {
|
pub struct Activity {
|
||||||
|
@ -10,7 +10,7 @@ pub struct Activity {
|
||||||
url: Option<String>,
|
url: Option<String>,
|
||||||
created_at: i64,
|
created_at: i64,
|
||||||
timestamps: Option<ActivityTimestamps>,
|
timestamps: Option<ActivityTimestamps>,
|
||||||
application_id: Option<String>,
|
application_id: Option<Snowflake>,
|
||||||
details: Option<String>,
|
details: Option<String>,
|
||||||
state: Option<String>,
|
state: Option<String>,
|
||||||
emoji: Option<Emoji>,
|
emoji: Option<Emoji>,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use crate::types::entities::PermissionOverwrite;
|
use crate::types::{entities::PermissionOverwrite, Snowflake};
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
#[serde(rename_all = "snake_case")]
|
#[serde(rename_all = "snake_case")]
|
||||||
|
@ -15,8 +15,8 @@ pub struct ChannelCreateSchema {
|
||||||
pub rate_limit_per_user: Option<i32>,
|
pub rate_limit_per_user: Option<i32>,
|
||||||
pub position: Option<i32>,
|
pub position: Option<i32>,
|
||||||
pub permission_overwrites: Option<Vec<PermissionOverwrite>>,
|
pub permission_overwrites: Option<Vec<PermissionOverwrite>>,
|
||||||
pub parent_id: Option<String>,
|
pub parent_id: Option<Snowflake>,
|
||||||
pub id: Option<String>,
|
pub id: Option<Snowflake>,
|
||||||
pub nsfw: Option<bool>,
|
pub nsfw: Option<bool>,
|
||||||
pub rtc_region: Option<String>,
|
pub rtc_region: Option<String>,
|
||||||
pub default_auto_archive_duration: Option<i32>,
|
pub default_auto_archive_duration: Option<i32>,
|
||||||
|
@ -38,7 +38,7 @@ pub struct ChannelModifySchema {
|
||||||
pub rate_limit_per_user: Option<i32>,
|
pub rate_limit_per_user: Option<i32>,
|
||||||
pub position: Option<i32>,
|
pub position: Option<i32>,
|
||||||
pub permission_overwrites: Option<Vec<PermissionOverwrite>>,
|
pub permission_overwrites: Option<Vec<PermissionOverwrite>>,
|
||||||
pub parent_id: Option<String>,
|
pub parent_id: Option<Snowflake>,
|
||||||
pub nsfw: Option<bool>,
|
pub nsfw: Option<bool>,
|
||||||
pub rtc_region: Option<String>,
|
pub rtc_region: Option<String>,
|
||||||
pub default_auto_archive_duration: Option<i32>,
|
pub default_auto_archive_duration: Option<i32>,
|
||||||
|
|
|
@ -47,13 +47,9 @@ async fn modify_channel() {
|
||||||
default_thread_rate_limit_per_user: None,
|
default_thread_rate_limit_per_user: None,
|
||||||
video_quality_mode: None,
|
video_quality_mode: None,
|
||||||
};
|
};
|
||||||
let result = Channel::modify(
|
let result = Channel::modify(modify_data, bundle.channel.id, &mut bundle.user)
|
||||||
modify_data,
|
.await
|
||||||
&bundle.channel.id.to_string(),
|
.unwrap();
|
||||||
&mut bundle.user,
|
|
||||||
)
|
|
||||||
.await
|
|
||||||
.unwrap();
|
|
||||||
assert_eq!(result.name, Some("beepboop".to_string()));
|
assert_eq!(result.name, Some("beepboop".to_string()));
|
||||||
|
|
||||||
let permission_override = PermissionFlags::from_vec(Vec::from([
|
let permission_override = PermissionFlags::from_vec(Vec::from([
|
||||||
|
@ -61,7 +57,7 @@ async fn modify_channel() {
|
||||||
PermissionFlags::MANAGE_MESSAGES,
|
PermissionFlags::MANAGE_MESSAGES,
|
||||||
]));
|
]));
|
||||||
let permission_override = PermissionOverwrite {
|
let permission_override = PermissionOverwrite {
|
||||||
id: bundle.user.object.id.to_string(),
|
id: bundle.user.object.id,
|
||||||
overwrite_type: "1".to_string(),
|
overwrite_type: "1".to_string(),
|
||||||
allow: permission_override,
|
allow: permission_override,
|
||||||
deny: "0".to_string(),
|
deny: "0".to_string(),
|
||||||
|
@ -69,19 +65,15 @@ async fn modify_channel() {
|
||||||
|
|
||||||
Channel::edit_permissions(
|
Channel::edit_permissions(
|
||||||
&mut bundle.user,
|
&mut bundle.user,
|
||||||
bundle.channel.id.to_string().as_str(),
|
bundle.channel.id,
|
||||||
permission_override.clone(),
|
permission_override.clone(),
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
Channel::delete_permission(
|
Channel::delete_permission(&mut bundle.user, bundle.channel.id, permission_override.id)
|
||||||
&mut bundle.user,
|
.await
|
||||||
bundle.channel.id.to_string().as_str(),
|
.unwrap();
|
||||||
&permission_override.id,
|
|
||||||
)
|
|
||||||
.await
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
common::teardown(bundle).await
|
common::teardown(bundle).await
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ async fn send_message() {
|
||||||
};
|
};
|
||||||
let _ = bundle
|
let _ = bundle
|
||||||
.user
|
.user
|
||||||
.send_message(&mut message, bundle.channel.id.to_string(), None)
|
.send_message(&mut message, bundle.channel.id, None)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
common::teardown(bundle).await
|
common::teardown(bundle).await
|
||||||
|
@ -57,7 +57,7 @@ async fn send_message_attachment() {
|
||||||
.user
|
.user
|
||||||
.send_message(
|
.send_message(
|
||||||
&mut message,
|
&mut message,
|
||||||
bundle.channel.id.to_string(),
|
bundle.channel.id,
|
||||||
Some(vec![attachment.clone()]),
|
Some(vec![attachment.clone()]),
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
|
@ -76,7 +76,7 @@ async fn read_messages() {
|
||||||
};
|
};
|
||||||
let _ = bundle
|
let _ = bundle
|
||||||
.user
|
.user
|
||||||
.send_message(&mut message, bundle.channel.id.to_string(), None)
|
.send_message(&mut message, bundle.channel.id, None)
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
common::teardown(bundle).await
|
common::teardown(bundle).await
|
||||||
|
|
Loading…
Reference in New Issue