From c8bde0c9ec26f2fc22d9dae62da73173882b7aa9 Mon Sep 17 00:00:00 2001 From: Quat3rnion Date: Wed, 5 Jun 2024 14:49:17 -0400 Subject: [PATCH 1/6] Use distinct types in `InviteGuild` object. --- src/types/entities/invite.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/types/entities/invite.rs b/src/types/entities/invite.rs index 8455f16..6131895 100644 --- a/src/types/entities/invite.rs +++ b/src/types/entities/invite.rs @@ -5,7 +5,8 @@ use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; -use crate::types::{Snowflake, WelcomeScreenObject, Shared, InviteFlags, InviteType, InviteTargetType}; +use crate::types::{Snowflake, WelcomeScreenObject, Shared, InviteFlags, InviteType, InviteTargetType, Guild, VerificationLevel}; +use crate::types::types::guild_configuration::GuildFeaturesList; use super::guild::GuildScheduledEvent; use super::{Application, Channel, GuildMember, NSFWLevel, User}; @@ -55,8 +56,8 @@ pub struct InviteGuild { pub name: String, pub icon: Option, pub splash: Option, - pub verification_level: i32, - pub features: Vec, + pub verification_level: VerificationLevel, + pub features: GuildFeaturesList, pub vanity_url_code: Option, pub description: Option, pub banner: Option, From 5110e9bfdb020f2afd114f91db84dcd2c7ebbfdd Mon Sep 17 00:00:00 2001 From: Quat3rnion Date: Wed, 5 Jun 2024 14:49:34 -0400 Subject: [PATCH 2/6] Implement `From for InviteGuild` --- src/types/entities/invite.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/types/entities/invite.rs b/src/types/entities/invite.rs index 6131895..0bfce28 100644 --- a/src/types/entities/invite.rs +++ b/src/types/entities/invite.rs @@ -69,6 +69,26 @@ pub struct InviteGuild { pub welcome_screen: Option, } +impl From for InviteGuild { + fn from(value: Guild) -> Self { + Self { + id: value.id, + name: value.name.unwrap_or_default(), + icon: value.icon, + splash: value.splash, + verification_level: value.verification_level.unwrap_or_default(), + features: value.features.unwrap_or_default(), + vanity_url_code: value.vanity_url_code, + description: value.description, + banner: value.banner, + premium_subscription_count: value.premium_subscription_count, + nsfw_deprecated: None, + nsfw_level: value.nsfw_level.unwrap_or_default(), + welcome_screen: value.welcome_screen.map(|obj| obj.0), + } + } +} + /// See #[derive(Debug, Serialize, Deserialize)] pub struct InviteStageInstance { From eb87bd6ffc70cefe682b8a3cd7930a1f76744c07 Mon Sep 17 00:00:00 2001 From: Quat3rnion Date: Wed, 5 Jun 2024 14:50:10 -0400 Subject: [PATCH 3/6] Add `GetInvitesSchema` --- src/types/schema/invites.rs | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/types/schema/invites.rs diff --git a/src/types/schema/invites.rs b/src/types/schema/invites.rs new file mode 100644 index 0000000..cecf073 --- /dev/null +++ b/src/types/schema/invites.rs @@ -0,0 +1,9 @@ +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Deserialize, Serialize, Clone, Copy, PartialEq, PartialOrd, Eq, Ord)] +/// Query parameters for routes that list invites. +/// # Reference: +/// Read: +pub struct GetInvitesSchema { + pub with_counts: Option, +} \ No newline at end of file From 556fbb9ded628494bb73a3833086b61d1b388396 Mon Sep 17 00:00:00 2001 From: Quat3rnion Date: Wed, 5 Jun 2024 14:50:38 -0400 Subject: [PATCH 4/6] Add forgotten import and pub use. --- src/types/schema/mod.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/types/schema/mod.rs b/src/types/schema/mod.rs index d353e09..ef3233d 100644 --- a/src/types/schema/mod.rs +++ b/src/types/schema/mod.rs @@ -10,6 +10,7 @@ pub use message::*; pub use relationship::*; pub use role::*; pub use user::*; +pub use invites::*; mod apierror; mod auth; @@ -19,3 +20,4 @@ mod message; mod relationship; mod role; mod user; +mod invites; From a0cddbf3ae48ac6ce6793b0c3406f48731afaf7d Mon Sep 17 00:00:00 2001 From: Quat3rnion Date: Wed, 5 Jun 2024 21:10:29 -0400 Subject: [PATCH 5/6] Fix compile error --- src/types/entities/invite.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/types/entities/invite.rs b/src/types/entities/invite.rs index 0bfce28..caec03f 100644 --- a/src/types/entities/invite.rs +++ b/src/types/entities/invite.rs @@ -84,7 +84,13 @@ impl From for InviteGuild { premium_subscription_count: value.premium_subscription_count, nsfw_deprecated: None, nsfw_level: value.nsfw_level.unwrap_or_default(), - welcome_screen: value.welcome_screen.map(|obj| obj.0), + welcome_screen: value.welcome_screen.map(|obj| { + #[cfg(feature = "sqlx")] + let res = obj.0; + #[cfg(not(feature = "sqlx"))] + let res = obj; + res + }), } } } From 83a8f080b7811de0f9b5d5df1642690498b81152 Mon Sep 17 00:00:00 2001 From: Quat3rnion <81202811+Quat3rnion@users.noreply.github.com> Date: Fri, 7 Jun 2024 00:46:53 -0400 Subject: [PATCH 6/6] Update docs aesthetics Co-authored-by: kozabrada123 <59031733+kozabrada123@users.noreply.github.com> --- src/types/schema/invites.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/types/schema/invites.rs b/src/types/schema/invites.rs index cecf073..6bf2131 100644 --- a/src/types/schema/invites.rs +++ b/src/types/schema/invites.rs @@ -1,9 +1,10 @@ use serde::{Deserialize, Serialize}; #[derive(Debug, Deserialize, Serialize, Clone, Copy, PartialEq, PartialOrd, Eq, Ord)] -/// Query parameters for routes that list invites. +/// Query parameters for the `Get Invite` route. +/// /// # Reference: -/// Read: +/// Read: pub struct GetInvitesSchema { pub with_counts: Option, } \ No newline at end of file