intense code jankification

This commit is contained in:
Lennart
2024-03-14 19:46:32 +01:00
parent b540362791
commit b21586d077
4 changed files with 32 additions and 15 deletions

View File

@@ -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<C: CalendarStore + ?Sized> Resource for CalendarResource<C> {
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(),
))),

View File

@@ -26,7 +26,7 @@ pub enum EventProp {
}
#[derive(Serialize)]
#[serde(untagged)]
#[serde(rename_all = "kebab-case")]
pub enum PrincipalPropResponse {
Getetag(TextNode),
CalendarData(TextNode),

View File

@@ -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<C: CalendarStore + ?Sized> Resource for PrincipalCalendarsResource<C> {
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)),
))
}
}
}
}

View File

@@ -26,7 +26,7 @@ pub struct Resourcetype {
}
#[derive(Serialize)]
#[serde(untagged)]
#[serde(rename_all = "kebab-case")]
pub enum RootPropResponse {
Resourcetype(Resourcetype),
CurrentUser(HrefElement),