remove internal only attributes

This commit is contained in:
bitfl0wer 2023-05-26 13:17:27 +02:00
parent 3353a2f461
commit 4360dcbf23
2 changed files with 9 additions and 132 deletions

View File

@ -9,63 +9,6 @@ use crate::types::{
utils::Snowflake, //util::{email::adjust_email, entities::user_setting::UserSettings},
};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "sqlx", derive(FromRow))]
pub struct User {
pub id: Snowflake,
pub username: String,
pub discriminator: String,
pub avatar: Option<String>,
pub accent_color: Option<u8>,
pub banner: Option<String>,
pub theme_colors: Option<Vec<u8>>,
pub pronouns: Option<String>,
pub phone: Option<String>,
pub desktop: bool,
pub mobile: bool,
pub premium: bool,
pub premium_type: u8,
pub bot: bool,
pub bio: String,
pub system: bool,
pub nsfw_allowed: bool,
pub mfa_enabled: bool,
pub webauthn_enabled: bool,
#[serde(skip)]
pub totp_secret: Option<String>,
#[serde(skip)]
pub totp_last_ticket: Option<String>,
pub created_at: DateTime<Utc>,
pub premium_since: Option<DateTime<Utc>>,
pub verified: bool,
pub disabled: bool,
pub deleted: bool,
pub email: Option<String>,
pub flags: String,
pub public_flags: u16,
pub purchased_flags: u16,
pub premium_usage_flags: u16,
pub rights: String,
#[cfg(feature = "sqlx")]
pub relationship_ids: sqlx::types::Json<Vec<String>>,
#[cfg(not(feature = "sqlx"))]
pub relationship_ids: Vec<String>,
#[cfg(feature = "sqlx")]
pub connected_account_ids: sqlx::types::Json<Vec<String>>,
#[cfg(not(feature = "sqlx"))]
pub connected_account_ids: Vec<String>,
#[cfg(feature = "sqlx")]
pub data: sqlx::types::Json<UserData>,
#[cfg(not(feature = "sqlx"))]
pub data: UserData,
#[cfg(feature = "sqlx")]
pub fingerprints: sqlx::types::Json<Vec<String>>,
#[cfg(not(feature = "sqlx"))]
pub fingerprints: Vec<String>,
// pub settings: UserSettings,
pub extended_settings: Value,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
#[cfg_attr(feature = "sqlx", derive(Type))]
pub struct UserData {
@ -73,96 +16,33 @@ pub struct UserData {
pub hash: Option<String>,
}
impl Default for User {
fn default() -> Self {
Self {
id: Snowflake::generate(),
username: String::new(),
discriminator: String::new(),
avatar: None,
accent_color: None,
banner: None,
theme_colors: None,
pronouns: None,
phone: None,
desktop: false,
mobile: false,
premium: false,
premium_type: 0,
bot: false,
bio: String::new(),
system: false,
nsfw_allowed: false,
mfa_enabled: false,
webauthn_enabled: false,
totp_secret: None,
totp_last_ticket: None,
created_at: Utc::now(),
premium_since: None,
verified: false,
disabled: false,
deleted: false,
email: None,
flags: String::from("0"),
public_flags: 0,
purchased_flags: 0,
premium_usage_flags: 0,
rights: String::new(),
relationship_ids: Default::default(),
connected_account_ids: Default::default(),
data: Default::default(),
fingerprints: Default::default(),
//settings: UserSettings::default(),
extended_settings: Value::Object(Map::new()),
}
}
}
impl User {
pub fn validate(&mut self) -> Result<(), Error> {
/*if let Some(email) = self.email.as_ref() {
self.email = Some(adjust_email(email)?);
}
if self.discriminator.len() < 4 {
self.discriminator = format!("{:0>4}", self.discriminator);
}
Ok(())*/
todo!()
}
pub async fn generate_discriminator(_username: &str) -> Result<String, Error> {
todo!()
}
}
impl User {
pub fn to_public_user(self) -> PublicUser {
PublicUser::from(self)
}
}
#[derive(Serialize, Deserialize, Debug, Default, Clone)]
pub struct PrivateUser {
pub id: String,
#[derive(Serialize, Deserialize, Debug, Default, Clone, PartialEq, Eq)]
pub struct User {
pub id: Snowflake,
username: String,
discriminator: String,
avatar: Option<String>,
bot: bool,
system: Option<bool>,
mfa_enabled: Option<bool>,
accent_color: Option<String>,
accent_color: Option<u8>,
locale: Option<String>,
verified: Option<bool>,
email: Option<String>,
flags: String,
premium_since: Option<String>,
premium_type: i8,
premium_since: Option<DateTime<Utc>>,
premium_type: u8,
pronouns: Option<String>,
public_flags: Option<i8>,
public_flags: Option<u16>,
banner: Option<String>,
bio: String,
theme_colors: Option<Vec<i32>>,
theme_colors: Option<Vec<u8>>,
phone: Option<String>,
nsfw_allowed: bool,
premium: bool,
@ -185,7 +65,7 @@ pub struct PublicUser {
pub bio: String,
pub premium_type: u8,
pub premium_since: Option<DateTime<Utc>>,
pub public_flags: u16,
pub public_flags: Option<u16>,
}
impl From<User> for PublicUser {

View File

@ -24,8 +24,6 @@ pub enum UserTheme {
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct UserSettings {
#[serde(skip_serializing)]
pub index: String, // Database relevance only
pub afk_timeout: u16,
pub allow_accessibility_detection: bool,
pub animate_emoji: bool,
@ -62,7 +60,6 @@ pub struct UserSettings {
impl Default for UserSettings {
fn default() -> Self {
Self {
index: Snowflake::generate().to_string(),
afk_timeout: 3600,
allow_accessibility_detection: true,
animate_emoji: true,