remove internal only attributes
This commit is contained in:
parent
c214c8bd73
commit
e3b4d3c56d
|
@ -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 {
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue