diff --git a/crates/caldav/src/calendar/resource.rs b/crates/caldav/src/calendar/resource.rs index 45127cd..edae9fc 100644 --- a/crates/caldav/src/calendar/resource.rs +++ b/crates/caldav/src/calendar/resource.rs @@ -101,7 +101,7 @@ impl Resource for CalendarFile { HrefElement::new(format!("{}/user/{}/", prefix, self.principal)), )), CalendarPropName::Owner => Ok(CalendarProp::Owner(HrefElement::new(format!( - "{}/{}/", + "{}/user/{}/", prefix, self.principal )))), CalendarPropName::Displayname => { diff --git a/crates/caldav/src/principal/mod.rs b/crates/caldav/src/principal/mod.rs index c05f3c5..add96a0 100644 --- a/crates/caldav/src/principal/mod.rs +++ b/crates/caldav/src/principal/mod.rs @@ -71,22 +71,21 @@ impl Resource for PrincipalFile { type Error = Error; fn get_prop(&self, prefix: &str, prop: Self::PropName) -> Result { + let principal_href = HrefElement::new(format!("{}/user/{}/", prefix, self.principal)); match prop { PrincipalPropName::Resourcetype => { Ok(PrincipalProp::Resourcetype(Resourcetype::default())) } - PrincipalPropName::CurrentUserPrincipal => Ok(PrincipalProp::CurrentUserPrincipal( - HrefElement::new(format!("{}/{}/", prefix, self.principal)), - )), - PrincipalPropName::PrincipalUrl => Ok(PrincipalProp::PrincipalUrl(HrefElement::new( - format!("{}/user/{}/", prefix, self.principal), - ))), - PrincipalPropName::CalendarHomeSet => Ok(PrincipalProp::CalendarHomeSet( - HrefElement::new(format!("{}/user/{}/", prefix, self.principal)), - )), - PrincipalPropName::CalendarUserAddressSet => Ok(PrincipalProp::CalendarUserAddressSet( - HrefElement::new(format!("{}/user/{}/", prefix, self.principal)), - )), + PrincipalPropName::CurrentUserPrincipal => { + Ok(PrincipalProp::CurrentUserPrincipal(principal_href)) + } + PrincipalPropName::PrincipalUrl => Ok(PrincipalProp::PrincipalUrl(principal_href)), + PrincipalPropName::CalendarHomeSet => { + Ok(PrincipalProp::CalendarHomeSet(principal_href)) + } + PrincipalPropName::CalendarUserAddressSet => { + Ok(PrincipalProp::CalendarUserAddressSet(principal_href)) + } } } }