Introduce handle_request_as_option

This commit is contained in:
Flori Weber 2023-06-11 19:22:10 +02:00
parent 8d6fab0858
commit e0a6b37a94
1 changed files with 16 additions and 2 deletions

View File

@ -6,8 +6,7 @@ use crate::{errors::ChorusLibError, instance::UserMeta, limit::LimitedRequester}
use super::limits::LimitType;
/// Sends a request to wherever it needs to go and performs some basic error
/// handling.
/// Sends a request to wherever it needs to go and performs some basic error handling.
pub async fn handle_request(
request: RequestBuilder,
user: &mut UserMeta,
@ -29,6 +28,21 @@ pub async fn handle_request(
}
}
/// Sends a request to wherever it needs to go. Returns [`None`] on success and
/// [`Some(ChorusLibError)`] on failure.
pub async fn handle_request_as_option(
request: RequestBuilder,
user: &mut UserMeta,
limit_type: LimitType,
) -> Option<ChorusLibError> {
match handle_request(request, user, limit_type).await {
Ok(_) => None,
Err(e) => Some(ChorusLibError::InvalidResponseError {
error: e.to_string(),
}),
}
}
pub async fn deserialize_response<T: for<'a> Deserialize<'a>>(
request: RequestBuilder,
user: &mut UserMeta,