diff --git a/src/api/channels/permissions.rs b/src/api/channels/permissions.rs index 0005d15..25c3856 100644 --- a/src/api/channels/permissions.rs +++ b/src/api/channels/permissions.rs @@ -2,6 +2,7 @@ use reqwest::Client; use serde_json::to_string; use crate::{ + api::handle_request, errors::ChorusLibError, instance::UserMeta, limit::LimitedRequester, @@ -25,13 +26,14 @@ impl types::Channel { channel_id: &str, overwrite: PermissionOverwrite, ) -> Option { - let mut belongs_to = user.belongs_to.borrow_mut(); + let belongs_to = user.belongs_to.borrow_mut(); let url = format!( "{}/channels/{}/permissions/{}", belongs_to.urls.get_api(), channel_id, overwrite.id ); + drop(belongs_to); let body = match to_string(&overwrite) { Ok(string) => string, Err(e) => { @@ -41,17 +43,12 @@ impl types::Channel { } }; let request = Client::new().put(url).bearer_auth(user.token()).body(body); - LimitedRequester::new() - .await - .send_request( - request, - crate::api::limits::LimitType::Channel, - &mut belongs_to.limits, - &mut user.limits, - ) - .await - .unwrap(); - None + match handle_request(request, user, crate::api::limits::LimitType::Channel).await { + Ok(_) => None, + Err(e) => Some(ChorusLibError::InvalidResponseError { + error: e.to_string(), + }), + } } /// Deletes a permission overwrite for a channel. @@ -70,26 +67,20 @@ impl types::Channel { channel_id: &str, overwrite_id: &str, ) -> Option { - let mut belongs_to = user.belongs_to.borrow_mut(); + let belongs_to = user.belongs_to.borrow_mut(); let url = format!( "{}/channels/{}/permissions/{}", belongs_to.urls.get_api(), channel_id, overwrite_id ); + drop(belongs_to); let request = Client::new().delete(url).bearer_auth(user.token()); - let response = LimitedRequester::new() - .await - .send_request( - request, - crate::api::limits::LimitType::Channel, - &mut belongs_to.limits, - &mut user.limits, - ) - .await; - if response.is_err() { - return Some(response.err().unwrap()); + match handle_request(request, user, crate::api::limits::LimitType::Channel).await { + Ok(_) => None, + Err(e) => Some(ChorusLibError::InvalidResponseError { + error: e.to_string(), + }), } - None } }