Compare commits

..

7 Commits

Author SHA1 Message Date
kozabrada123 3237db708c
Backend/invites (#503)
- Adds implementation to convert `Guild` to `InviteGuild`
- Adds GetInviteSchema
- Replaces primitives with distinct types on `InviteGuild`
2024-06-07 06:54:33 +02:00
Quat3rnion 83a8f080b7
Update docs aesthetics
Co-authored-by: kozabrada123 <59031733+kozabrada123@users.noreply.github.com>
2024-06-07 00:46:53 -04:00
Quat3rnion a0cddbf3ae Fix compile error 2024-06-05 21:10:29 -04:00
Quat3rnion 556fbb9ded Add forgotten import and pub use. 2024-06-05 14:50:38 -04:00
Quat3rnion eb87bd6ffc Add `GetInvitesSchema` 2024-06-05 14:50:10 -04:00
Quat3rnion 5110e9bfdb Implement `From<Guild> for InviteGuild` 2024-06-05 14:49:34 -04:00
Quat3rnion c8bde0c9ec Use distinct types in `InviteGuild` object. 2024-06-05 14:49:17 -04:00
3 changed files with 42 additions and 3 deletions

View File

@ -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<String>,
pub splash: Option<String>,
pub verification_level: i32,
pub features: Vec<String>,
pub verification_level: VerificationLevel,
pub features: GuildFeaturesList,
pub vanity_url_code: Option<String>,
pub description: Option<String>,
pub banner: Option<String>,
@ -68,6 +69,32 @@ pub struct InviteGuild {
pub welcome_screen: Option<WelcomeScreenObject>,
}
impl From<Guild> 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| {
#[cfg(feature = "sqlx")]
let res = obj.0;
#[cfg(not(feature = "sqlx"))]
let res = obj;
res
}),
}
}
}
/// See <https://discord-userdoccers.vercel.app/resources/invite#invite-stage-instance-object>
#[derive(Debug, Serialize, Deserialize)]
pub struct InviteStageInstance {

View File

@ -0,0 +1,10 @@
use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize, Clone, Copy, PartialEq, PartialOrd, Eq, Ord)]
/// Query parameters for the `Get Invite` route.
///
/// # Reference:
/// Read: <https://docs.discord.sex/resources/invite#query-string-params>
pub struct GetInvitesSchema {
pub with_counts: Option<bool>,
}

View File

@ -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;