From d593a28381bc2222b5c51ec94382d3446a0cf445 Mon Sep 17 00:00:00 2001 From: Lennart <18233294+lennart-k@users.noreply.github.com> Date: Tue, 8 Oct 2024 16:13:48 +0200 Subject: [PATCH] propfind does not need to be async --- .../src/calendar/methods/report/calendar_multiget.rs | 10 +++++----- .../src/calendar/methods/report/calendar_query.rs | 10 +++++----- .../src/calendar/methods/report/sync_collection.rs | 10 +++++----- crates/dav/src/methods/propfind.rs | 10 ++-------- crates/dav/src/resource.rs | 3 +-- 5 files changed, 18 insertions(+), 25 deletions(-) diff --git a/crates/caldav/src/calendar/methods/report/calendar_multiget.rs b/crates/caldav/src/calendar/methods/report/calendar_multiget.rs index 030f0d4..6ac623f 100644 --- a/crates/caldav/src/calendar/methods/report/calendar_multiget.rs +++ b/crates/caldav/src/calendar/methods/report/calendar_multiget.rs @@ -90,11 +90,11 @@ pub async fn handle_calendar_multiget( let mut responses = Vec::new(); for object in objects { let path = format!("{}/{}", req.path(), object.get_uid()); - responses.push( - CalendarObjectResource::from(object) - .propfind(&path, props.clone(), req.resource_map()) - .await?, - ); + responses.push(CalendarObjectResource::from(object).propfind( + &path, + props.clone(), + req.resource_map(), + )?); } let not_found_responses = not_found diff --git a/crates/caldav/src/calendar/methods/report/calendar_query.rs b/crates/caldav/src/calendar/methods/report/calendar_query.rs index 3a54190..5e12003 100644 --- a/crates/caldav/src/calendar/methods/report/calendar_query.rs +++ b/crates/caldav/src/calendar/methods/report/calendar_query.rs @@ -236,11 +236,11 @@ pub async fn handle_calendar_query( vec![principal, cid, object.get_uid()], ) .unwrap(); - responses.push( - CalendarObjectResource::from(object) - .propfind(&path, props.clone(), req.resource_map()) - .await?, - ); + responses.push(CalendarObjectResource::from(object).propfind( + &path, + props.clone(), + req.resource_map(), + )?); } Ok(MultistatusElement { diff --git a/crates/caldav/src/calendar/methods/report/sync_collection.rs b/crates/caldav/src/calendar/methods/report/sync_collection.rs index e69fb4b..3c3ccf0 100644 --- a/crates/caldav/src/calendar/methods/report/sync_collection.rs +++ b/crates/caldav/src/calendar/methods/report/sync_collection.rs @@ -75,11 +75,11 @@ pub async fn handle_sync_collection( vec![principal, cid, &object.get_uid()], ) .unwrap(); - responses.push( - CalendarObjectResource::from(object) - .propfind(&path, props.clone(), req.resource_map()) - .await?, - ); + responses.push(CalendarObjectResource::from(object).propfind( + &path, + props.clone(), + req.resource_map(), + )?); } for object_uid in deleted_objects { diff --git a/crates/dav/src/methods/propfind.rs b/crates/dav/src/methods/propfind.rs index 42fc254..d17b64c 100644 --- a/crates/dav/src/methods/propfind.rs +++ b/crates/dav/src/methods/propfind.rs @@ -76,18 +76,12 @@ pub async fn route_propfind( let mut member_responses = Vec::new(); if depth != Depth::Zero { for (path, member) in resource_service.get_members(req.resource_map()).await? { - member_responses.push( - member - .propfind(&path, props.clone(), req.resource_map()) - .await?, - ); + member_responses.push(member.propfind(&path, props.clone(), req.resource_map())?); } } let resource = resource_service.get_resource(user.id).await?; - let response = resource - .propfind(req.path(), props, req.resource_map()) - .await?; + let response = resource.propfind(req.path(), props, req.resource_map())?; Ok(MultistatusElement { responses: vec![response], diff --git a/crates/dav/src/resource.rs b/crates/dav/src/resource.rs index 6c6c2ec..86da0ec 100644 --- a/crates/dav/src/resource.rs +++ b/crates/dav/src/resource.rs @@ -52,8 +52,7 @@ pub trait Resource: Clone { .to_owned()) } - #[allow(async_fn_in_trait)] - async fn propfind( + fn propfind( &self, path: &str, mut props: Vec<&str>,