From edb5cbd530180613b56dcda56c9350fe03193ecd Mon Sep 17 00:00:00 2001 From: Lennart <18233294+lennart-k@users.noreply.github.com> Date: Thu, 20 Jun 2024 20:35:07 +0200 Subject: [PATCH] calendar: implement get_members --- crates/caldav/src/calendar/resource.rs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/crates/caldav/src/calendar/resource.rs b/crates/caldav/src/calendar/resource.rs index 0621cd3..f284bee 100644 --- a/crates/caldav/src/calendar/resource.rs +++ b/crates/caldav/src/calendar/resource.rs @@ -1,3 +1,4 @@ +use crate::event::resource::EventFile; use crate::Error; use actix_web::{web::Data, HttpRequest}; use anyhow::anyhow; @@ -268,7 +269,7 @@ impl Resource for CalendarFile { #[async_trait(?Send)] impl ResourceService for CalendarResource { - type MemberType = CalendarFile; + type MemberType = EventFile; type PathComponents = (String, String); // principal, calendar_id type File = CalendarFile; type Error = Error; @@ -293,7 +294,18 @@ impl ResourceService for CalendarResource { _auth_info: AuthInfo, ) -> Result, Self::Error> { // As of now the calendar resource has no members since events are shown with REPORT - Ok(vec![]) + Ok(self + .cal_store + .read() + .await + .get_events(&self.calendar_id) + .await? + .into_iter() + .map(|event| EventFile { + path: format!("{}/{}", self.path, &event.get_uid()), + event, + }) + .collect()) } async fn new(