From b00266a93ebd325d9f549e2bcf57fb32965324d8 Mon Sep 17 00:00:00 2001 From: grimhilt Date: Thu, 15 Jun 2023 17:32:14 +0200 Subject: [PATCH] add service to delete a path --- src/services.rs | 1 + src/services/delete_path.rs | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 src/services/delete_path.rs diff --git a/src/services.rs b/src/services.rs index 84aab59..316c9fc 100644 --- a/src/services.rs +++ b/src/services.rs @@ -3,3 +3,4 @@ pub mod list_folders; pub mod download_files; pub mod req_props; pub mod upload_file; +pub mod delete_path; diff --git a/src/services/delete_path.rs b/src/services/delete_path.rs new file mode 100644 index 0000000..b9645ce --- /dev/null +++ b/src/services/delete_path.rs @@ -0,0 +1,33 @@ +use crate::services::api::{ApiBuilder, ApiError}; +use reqwest::{Method, Response, Error}; + +pub struct DeletePath { + api_builder: ApiBuilder, +} + +impl DeletePath { + pub fn new() -> Self { + DeletePath { + api_builder: ApiBuilder::new(), + } + } + + pub fn set_url(&mut self, url: &str) -> &mut DeletePath { + self.api_builder.build_request(Method::DELETE, url); + self + } + + pub async fn send(&mut self) -> Result { + self.api_builder.send().await + } + + pub async fn send_with_err(&mut self) -> Result { + let res = self.send().await.map_err(ApiError::RequestError)?; + if res.status().is_success() { + let body = res.text().await.map_err(ApiError::EmptyError)?; + Ok(body) + } else { + Err(ApiError::IncorrectRequest(res)) + } + } +}