From e0a6b37a944dc46470d10755a936a7dad53a9fa2 Mon Sep 17 00:00:00 2001 From: Flori Weber Date: Sun, 11 Jun 2023 19:22:10 +0200 Subject: [PATCH] Introduce handle_request_as_option --- src/api/common.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/api/common.rs b/src/api/common.rs index e20ee89..849bf13 100644 --- a/src/api/common.rs +++ b/src/api/common.rs @@ -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 { + match handle_request(request, user, limit_type).await { + Ok(_) => None, + Err(e) => Some(ChorusLibError::InvalidResponseError { + error: e.to_string(), + }), + } +} + pub async fn deserialize_response Deserialize<'a>>( request: RequestBuilder, user: &mut UserMeta,