From b21586d077c50bf9d8811112f417778558145864 Mon Sep 17 00:00:00 2001 From: Lennart <18233294+lennart-k@users.noreply.github.com> Date: Thu, 14 Mar 2024 19:46:32 +0100 Subject: [PATCH] intense code jankification --- crates/caldav/src/resources/calendar.rs | 17 +++++++++------- crates/caldav/src/resources/event.rs | 2 +- crates/caldav/src/resources/principal.rs | 26 ++++++++++++++++++------ crates/caldav/src/resources/root.rs | 2 +- 4 files changed, 32 insertions(+), 15 deletions(-) diff --git a/crates/caldav/src/resources/calendar.rs b/crates/caldav/src/resources/calendar.rs index 0f4f4a7..8bb1b86 100644 --- a/crates/caldav/src/resources/calendar.rs +++ b/crates/caldav/src/resources/calendar.rs @@ -132,10 +132,11 @@ pub enum CalendarProp { } #[derive(Serialize)] -#[serde(untagged)] +#[serde(rename_all = "kebab-case")] pub enum CalendarPropResponse { Resourcetype(Resourcetype), - CurrentUser(HrefElement), + CurrentUserPrincipal(HrefElement), + Owner(HrefElement), Displayname(TextNode), CalendarColor(TextNode), CalendarDescription(TextNode), @@ -190,11 +191,13 @@ impl Resource for CalendarResource { CalendarProp::Resourcetype => { Ok(CalendarPropResponse::Resourcetype(Resourcetype::default())) } - CalendarProp::CurrentUserPrincipal | CalendarProp::Owner => { - Ok(CalendarPropResponse::CurrentUser(HrefElement::new( - format!("{}/{}/", self.prefix, self.principal), - ))) - } + CalendarProp::CurrentUserPrincipal => Ok(CalendarPropResponse::CurrentUserPrincipal( + HrefElement::new(format!("{}/{}/", self.prefix, self.principal)), + )), + CalendarProp::Owner => Ok(CalendarPropResponse::Owner(HrefElement::new(format!( + "{}/{}/", + self.prefix, self.principal + )))), CalendarProp::Displayname => Ok(CalendarPropResponse::Displayname(TextNode( self.calendar.name.clone(), ))), diff --git a/crates/caldav/src/resources/event.rs b/crates/caldav/src/resources/event.rs index f0a149c..fce4246 100644 --- a/crates/caldav/src/resources/event.rs +++ b/crates/caldav/src/resources/event.rs @@ -26,7 +26,7 @@ pub enum EventProp { } #[derive(Serialize)] -#[serde(untagged)] +#[serde(rename_all = "kebab-case")] pub enum PrincipalPropResponse { Getetag(TextNode), CalendarData(TextNode), diff --git a/crates/caldav/src/resources/principal.rs b/crates/caldav/src/resources/principal.rs index 6b74870..aa1569e 100644 --- a/crates/caldav/src/resources/principal.rs +++ b/crates/caldav/src/resources/principal.rs @@ -26,10 +26,16 @@ pub struct Resourcetype { } #[derive(Serialize)] -#[serde(untagged)] +#[serde(rename_all = "kebab-case")] pub enum PrincipalPropResponse { Resourcetype(Resourcetype), - CurrentUser(HrefElement), + CurrentUserPrincipal(HrefElement), + #[serde(rename = "principal-URL")] + PrincipalUrl(HrefElement), + #[serde(rename = "C:calendar-home-set")] + CalendarHomeSet(HrefElement), + #[serde(rename = "C:calendar-user-address-set")] + CalendarUserAddressSet(HrefElement), } #[derive(EnumString, Debug, VariantNames, IntoStaticStr, EnumProperty, Clone)] @@ -100,12 +106,20 @@ impl Resource for PrincipalCalendarsResource { PrincipalProp::Resourcetype => { Ok(PrincipalPropResponse::Resourcetype(Resourcetype::default())) } - PrincipalProp::CurrentUserPrincipal - | PrincipalProp::PrincipalUrl - | PrincipalProp::CalendarHomeSet - | PrincipalProp::CalendarUserAddressSet => Ok(PrincipalPropResponse::CurrentUser( + PrincipalProp::CurrentUserPrincipal => Ok(PrincipalPropResponse::CurrentUserPrincipal( HrefElement::new(format!("{}/{}/", self.prefix, self.principal)), )), + PrincipalProp::PrincipalUrl => Ok(PrincipalPropResponse::PrincipalUrl( + HrefElement::new(format!("{}/{}/", self.prefix, self.principal)), + )), + PrincipalProp::CalendarHomeSet => Ok(PrincipalPropResponse::CalendarHomeSet( + HrefElement::new(format!("{}/{}/", self.prefix, self.principal)), + )), + PrincipalProp::CalendarUserAddressSet => { + Ok(PrincipalPropResponse::CalendarUserAddressSet( + HrefElement::new(format!("{}/{}/", self.prefix, self.principal)), + )) + } } } } diff --git a/crates/caldav/src/resources/root.rs b/crates/caldav/src/resources/root.rs index bdd910e..600ad6f 100644 --- a/crates/caldav/src/resources/root.rs +++ b/crates/caldav/src/resources/root.rs @@ -26,7 +26,7 @@ pub struct Resourcetype { } #[derive(Serialize)] -#[serde(untagged)] +#[serde(rename_all = "kebab-case")] pub enum RootPropResponse { Resourcetype(Resourcetype), CurrentUser(HrefElement),