diff --git a/src/api/auth/login.rs b/src/api/auth/login.rs index 311c90b..3b3ffc6 100644 --- a/src/api/auth/login.rs +++ b/src/api/auth/login.rs @@ -46,7 +46,7 @@ impl Instance { login_result.token, self.clone_limits_if_some(), login_result.settings, - Arc::new(Mutex::new(object)), + Arc::new(RwLock::new(object)), gateway, ); Ok(user) diff --git a/src/api/auth/register.rs b/src/api/auth/register.rs index 634c92f..7beaa76 100644 --- a/src/api/auth/register.rs +++ b/src/api/auth/register.rs @@ -52,8 +52,8 @@ impl Instance { Rc::new(RefCell::new(self.clone())), token.clone(), self.clone_limits_if_some(), - Arc::new(Mutex::new(settings)), - Arc::new(Mutex::new(user_object)), + Arc::new(RwLock::new(settings)), + Arc::new(RwLock::new(user_object)), gateway, ); Ok(user) diff --git a/src/api/channels/channels.rs b/src/api/channels/channels.rs index bf2c48c..08200d1 100644 --- a/src/api/channels/channels.rs +++ b/src/api/channels/channels.rs @@ -62,7 +62,6 @@ impl Channel { /// # Reference /// See pub async fn modify( - &self, modify_data: ChannelModifySchema, channel_id: Snowflake, user: &mut UserMeta, diff --git a/src/api/users/users.rs b/src/api/users/users.rs index 8113701..33afbee 100644 --- a/src/api/users/users.rs +++ b/src/api/users/users.rs @@ -60,7 +60,7 @@ impl UserMeta { .deserialize_response::(self) .await .unwrap(); - self.object = Arc::new(Mutex::new(user_updated.clone())); + self.object = Arc::new(RwLock::new(user_updated.clone())); Ok(user_updated) } diff --git a/tests/channels.rs b/tests/channels.rs index d810c10..2fc1fc3 100644 --- a/tests/channels.rs +++ b/tests/channels.rs @@ -50,7 +50,7 @@ async fn modify_channel() { default_thread_rate_limit_per_user: None, video_quality_mode: None, }; - let modified_channel = Channel::modify(channel, modify_data, channel.id, &mut bundle.user) + let modified_channel = Channel::modify(modify_data, channel.id, &mut bundle.user) .await .unwrap(); assert_eq!(modified_channel.name, Some(CHANNEL_NAME.to_string())); @@ -59,7 +59,7 @@ async fn modify_channel() { PermissionFlags::MANAGE_CHANNELS, PermissionFlags::MANAGE_MESSAGES, ])); - let user_id: types::Snowflake = bundle.user.object.lock().unwrap().id; + let user_id: types::Snowflake = bundle.user.object.read().unwrap().id; let permission_override = PermissionOverwrite { id: user_id, overwrite_type: "1".to_string(), @@ -144,7 +144,7 @@ async fn create_dm() { let other_user = bundle.create_user("integrationtestuser2").await; let user = &mut bundle.user; let private_channel_create_schema = PrivateChannelCreateSchema { - recipients: Some(Vec::from([other_user.object.lock().unwrap().id])), + recipients: Some(Vec::from([other_user.object.read().unwrap().id])), access_tokens: None, nicks: None, }; @@ -160,11 +160,11 @@ async fn create_dm() { .unwrap() .get(0) .unwrap() - .lock() + .read() .unwrap() .id .clone(), - other_user.object.lock().unwrap().id + other_user.object.read().unwrap().id ); assert_eq!( dm_channel @@ -173,11 +173,11 @@ async fn create_dm() { .unwrap() .get(1) .unwrap() - .lock() + .read() .unwrap() .id .clone(), - user.object.lock().unwrap().id.clone() + user.object.read().unwrap().id.clone() ); common::teardown(bundle).await; } @@ -189,9 +189,9 @@ async fn remove_add_person_from_to_dm() { let mut bundle = common::setup().await; let mut other_user = bundle.create_user("integrationtestuser2").await; let mut third_user = bundle.create_user("integrationtestuser3").await; - let third_user_id = third_user.object.lock().unwrap().id; - let other_user_id = other_user.object.lock().unwrap().id; - let user_id = bundle.user.object.lock().unwrap().id; + let third_user_id = third_user.object.read().unwrap().id; + let other_user_id = other_user.object.read().unwrap().id; + let user_id = bundle.user.object.read().unwrap().id; let user = &mut bundle.user; let private_channel_create_schema = PrivateChannelCreateSchema { recipients: Some(Vec::from([other_user_id, third_user_id])), @@ -234,7 +234,7 @@ async fn remove_add_person_from_to_dm() { .unwrap() .get(0) .unwrap() - .lock() + .read() .unwrap() .id, other_user_id @@ -246,7 +246,7 @@ async fn remove_add_person_from_to_dm() { .unwrap() .get(1) .unwrap() - .lock() + .read() .unwrap() .id, user_id diff --git a/tests/members.rs b/tests/members.rs index a314be7..aae8db0 100644 --- a/tests/members.rs +++ b/tests/members.rs @@ -7,7 +7,7 @@ async fn add_remove_role() -> ChorusResult<()> { let mut bundle = common::setup().await; let guild = bundle.guild.id; let role = bundle.role.id; - let member_id = bundle.user.object.lock().unwrap().id; + let member_id = bundle.user.object.read().unwrap().id; GuildMember::add_role(&mut bundle.user, guild, member_id, role).await?; let member = GuildMember::get(&mut bundle.user, guild, member_id) .await diff --git a/tests/relationships.rs b/tests/relationships.rs index 2773474..09ddab0 100644 --- a/tests/relationships.rs +++ b/tests/relationships.rs @@ -7,9 +7,9 @@ async fn test_get_mutual_relationships() { let mut bundle = common::setup().await; let mut other_user = bundle.create_user("integrationtestuser2").await; let user = &mut bundle.user; - let username = user.object.lock().unwrap().username.clone(); - let discriminator = user.object.lock().unwrap().discriminator.clone(); - let other_user_id: types::Snowflake = other_user.object.lock().unwrap().id; + let username = user.object.read().unwrap().username.clone(); + let discriminator = user.object.read().unwrap().discriminator.clone(); + let other_user_id: types::Snowflake = other_user.object.read().unwrap().id; let friend_request_schema = types::FriendRequestSendSchema { username, discriminator: Some(discriminator), @@ -28,8 +28,8 @@ async fn test_get_relationships() { let mut bundle = common::setup().await; let mut other_user = bundle.create_user("integrationtestuser2").await; let user = &mut bundle.user; - let username = user.object.lock().unwrap().username.clone(); - let discriminator = user.object.lock().unwrap().discriminator.clone(); + let username = user.object.read().unwrap().username.clone(); + let discriminator = user.object.read().unwrap().discriminator.clone(); let friend_request_schema = types::FriendRequestSendSchema { username, discriminator: Some(discriminator), @@ -41,7 +41,7 @@ async fn test_get_relationships() { let relationships = user.get_relationships().await.unwrap(); assert_eq!( relationships.get(0).unwrap().id, - other_user.object.lock().unwrap().id + other_user.object.read().unwrap().id ); common::teardown(bundle).await } @@ -51,8 +51,8 @@ async fn test_modify_relationship_friends() { let mut bundle = common::setup().await; let mut other_user = bundle.create_user("integrationtestuser2").await; let user = &mut bundle.user; - let user_id: types::Snowflake = user.object.lock().unwrap().id; - let other_user_id: types::Snowflake = other_user.object.lock().unwrap().id; + let user_id: types::Snowflake = user.object.read().unwrap().id; + let other_user_id: types::Snowflake = other_user.object.read().unwrap().id; other_user .modify_user_relationship(user_id, types::RelationshipType::Friends) @@ -61,7 +61,7 @@ async fn test_modify_relationship_friends() { let relationships = user.get_relationships().await.unwrap(); assert_eq!( relationships.get(0).unwrap().id, - other_user.object.lock().unwrap().id + other_user.object.read().unwrap().id ); assert_eq!( relationships.get(0).unwrap().relationship_type, @@ -70,7 +70,7 @@ async fn test_modify_relationship_friends() { let relationships = other_user.get_relationships().await.unwrap(); assert_eq!( relationships.get(0).unwrap().id, - user.object.lock().unwrap().id + user.object.read().unwrap().id ); assert_eq!( relationships.get(0).unwrap().relationship_type, @@ -102,7 +102,7 @@ async fn test_modify_relationship_block() { let mut bundle = common::setup().await; let mut other_user = bundle.create_user("integrationtestuser2").await; let user = &mut bundle.user; - let user_id: types::Snowflake = user.object.lock().unwrap().id; + let user_id: types::Snowflake = user.object.read().unwrap().id; other_user .modify_user_relationship(user_id, types::RelationshipType::Blocked) @@ -113,7 +113,7 @@ async fn test_modify_relationship_block() { let relationships = other_user.get_relationships().await.unwrap(); assert_eq!( relationships.get(0).unwrap().id, - user.object.lock().unwrap().id + user.object.read().unwrap().id ); assert_eq!( relationships.get(0).unwrap().relationship_type,