This is an automated email from the ASF dual-hosted git repository.

xuanwo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/opendal.git


The following commit(s) were added to refs/heads/main by this push:
     new 4c77e3bf5 feat(services/onedrive): Add operation in http context 
(#6111)
4c77e3bf5 is described below

commit 4c77e3bf5b47a3aeb7ef8ad68aeda009f8d957fe
Author: Jorge Hermo <[email protected]>
AuthorDate: Mon Apr 28 07:05:00 2025 +0200

    feat(services/onedrive): Add operation in http context (#6111)
    
    * feat(services/onedrive): Add operation in http context
    
    * Update core.rs
---
 core/src/services/onedrive/core.rs | 25 ++++++++++++++++++++++---
 1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/core/src/services/onedrive/core.rs 
b/core/src/services/onedrive/core.rs
index 597aa1318..8b10d213e 100644
--- a/core/src/services/onedrive/core.rs
+++ b/core/src/services/onedrive/core.rs
@@ -95,6 +95,7 @@ impl OneDriveCore {
         let request = Request::get(&url);
 
         let mut request = request
+            .extension(Operation::Stat)
             .body(Buffer::new())
             .map_err(new_request_build_error)?;
 
@@ -172,6 +173,7 @@ impl OneDriveCore {
         }
 
         let mut request = request
+            .extension(Operation::Stat)
             .body(Buffer::new())
             .map_err(new_request_build_error)?;
 
@@ -235,6 +237,7 @@ impl OneDriveCore {
         );
 
         let mut request = Request::get(url)
+            .extension(Operation::List)
             .body(Buffer::new())
             .map_err(new_request_build_error)?;
 
@@ -249,6 +252,7 @@ impl OneDriveCore {
 
     pub(crate) async fn onedrive_get_next_list_page(&self, url: &str) -> 
Result<Response<Buffer>> {
         let mut request = Request::get(url)
+            .extension(Operation::List)
             .body(Buffer::new())
             .map_err(new_request_build_error)?;
 
@@ -280,6 +284,7 @@ impl OneDriveCore {
         }
 
         let mut request = request
+            .extension(Operation::Read)
             .body(Buffer::new())
             .map_err(new_request_build_error)?;
 
@@ -329,7 +334,10 @@ impl OneDriveCore {
             request = request.header(header::IF_MATCH, if_match);
         }
 
-        let mut request = request.body(body).map_err(new_request_build_error)?;
+        let mut request = request
+            .extension(Operation::Write)
+            .body(body)
+            .map_err(new_request_build_error)?;
 
         self.sign(&mut request).await?;
 
@@ -357,7 +365,10 @@ impl OneDriveCore {
             request = request.header(header::CONTENT_TYPE, mime)
         }
 
-        let request = request.body(body).map_err(new_request_build_error)?;
+        let request = request
+            .extension(Operation::Write)
+            .body(body)
+            .map_err(new_request_build_error)?;
         // OneDrive documentation requires not sending the `Authorization` 
header
 
         self.info.http_client().send(request).await
@@ -388,7 +399,10 @@ impl OneDriveCore {
         let body = 
OneDriveUploadSessionCreationRequestBody::new(file_name.to_string());
         let body_bytes = 
serde_json::to_vec(&body).map_err(new_json_serialize_error)?;
         let body = Buffer::from(Bytes::from(body_bytes));
-        let mut request = request.body(body).map_err(new_request_build_error)?;
+        let mut request = request
+            .extension(Operation::Write)
+            .body(body)
+            .map_err(new_request_build_error)?;
 
         self.sign(&mut request).await?;
 
@@ -418,6 +432,7 @@ impl OneDriveCore {
 
         let mut request = Request::post(url)
             .header(header::CONTENT_TYPE, "application/json")
+            .extension(Operation::CreateDir)
             .body(body)
             .map_err(new_request_build_error)?;
 
@@ -433,6 +448,7 @@ impl OneDriveCore {
         let url = self.onedrive_item_url(path, true);
 
         let mut request = Request::delete(&url)
+            .extension(Operation::Delete)
             .body(Buffer::new())
             .map_err(new_request_build_error)?;
 
@@ -492,6 +508,7 @@ impl OneDriveCore {
         let buffer = Buffer::from(Bytes::from(body_bytes));
         let mut request = Request::post(&url)
             .header(header::CONTENT_TYPE, "application/json")
+            .extension(Operation::Copy)
             .body(buffer)
             .map_err(new_request_build_error)?;
 
@@ -515,6 +532,7 @@ impl OneDriveCore {
         for _attempt in 0..MAX_MONITOR_ATTEMPT {
             let mut request = Request::get(monitor_url.to_string())
                 .header(header::CONTENT_TYPE, "application/json")
+                .extension(Operation::Copy)
                 .body(Buffer::new())
                 .map_err(new_request_build_error)?;
 
@@ -567,6 +585,7 @@ impl OneDriveCore {
         );
         let mut request = Request::patch(&url)
             .header(header::CONTENT_TYPE, "application/json")
+            .extension(Operation::Rename)
             .body(buffer)
             .map_err(new_request_build_error)?;
 

Reply via email to