diff --git a/src/api/auth/login.rs b/src/api/auth/login.rs index f7c4fe6..ca8e135 100644 --- a/src/api/auth/login.rs +++ b/src/api/auth/login.rs @@ -12,7 +12,7 @@ pub mod login { pub async fn login_account( &mut self, login_schema: &LoginSchema, - ) -> Result { + ) -> Result { let requester = &mut self.requester; let json_schema = json!(login_schema); let client = Client::new(); @@ -49,9 +49,21 @@ pub mod login { return Err(InstanceServerError::InvalidFormBodyError { error_type, error }); } + let cloned_limits = self.limits.clone(); let login_result: LoginResult = from_str(&response_text_string).unwrap(); + let object = self + .get_user(login_result.token.clone(), None) + .await + .unwrap(); + let user = crate::api::types::User::new( + self, + login_result.token, + cloned_limits, + login_result.settings, + Some(object), + ); - Ok(login_result) + Ok(user) } } } diff --git a/src/api/auth/register.rs b/src/api/auth/register.rs index b932b9f..2d78742 100644 --- a/src/api/auth/register.rs +++ b/src/api/auth/register.rs @@ -5,7 +5,7 @@ pub mod register { use crate::{ api::{limits::LimitType, schemas::RegisterSchema, types::ErrorResponse}, errors::InstanceServerError, - instance::{Instance, Token}, + instance::Instance, }; impl Instance { @@ -19,7 +19,7 @@ pub mod register { pub async fn register_account( &mut self, register_schema: &RegisterSchema, - ) -> Result { + ) -> Result { let json_schema = json!(register_schema); let limited_requester = &mut self.requester; let client = Client::new(); @@ -55,9 +55,25 @@ pub mod register { } return Err(InstanceServerError::InvalidFormBodyError { error_type, error }); } - Ok(Token { - token: response_text_string, - }) + let user_object = self + .get_user(response_text_string.clone(), None) + .await + .unwrap(); + let settings = crate::api::types::User::get_settings( + &response_text_string, + &self.urls.get_api().to_string(), + &mut self.limits, + ) + .await + .unwrap(); + let user: crate::api::types::User = crate::api::types::User::new( + self, + response_text_string.clone(), + cloned_limits, + settings, + Some(user_object), + ); + Ok(user) } } } @@ -117,7 +133,7 @@ mod test { AuthUsername::new("Hiiii".to_string()).unwrap(), Some(AuthPassword::new("mysupersecurepass123!".to_string()).unwrap()), true, - Some(AuthEmail::new("random978234@aaaa.xyz".to_string()).unwrap()), + Some(AuthEmail::new("three12@aaaa.xyz".to_string()).unwrap()), None, None, Some("2000-01-01".to_string()),