Refactor permissions.rs to use api::common

This commit is contained in:
Flori Weber 2023-06-11 17:56:29 +02:00
parent 90ad75ae30
commit c479db36fb
No known key found for this signature in database
GPG Key ID: 0ACD574FCF5226CF
1 changed files with 16 additions and 25 deletions

View File

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