propfind does not need to be async

This commit is contained in:
Lennart
2024-10-08 16:13:48 +02:00
parent 97457d72d3
commit d593a28381
5 changed files with 18 additions and 25 deletions

View File

@@ -90,11 +90,11 @@ pub async fn handle_calendar_multiget<C: CalendarStore + ?Sized>(
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

View File

@@ -236,11 +236,11 @@ pub async fn handle_calendar_query<C: CalendarStore + ?Sized>(
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 {

View File

@@ -75,11 +75,11 @@ pub async fn handle_sync_collection<C: CalendarStore + ?Sized>(
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 {

View File

@@ -76,18 +76,12 @@ pub async fn route_propfind<R: ResourceService>(
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],

View File

@@ -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>,