mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-13 22:52:22 +00:00
DAV Push: Add supported-triggers
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
use crate::Transports;
|
||||
use crate::{ContentUpdate, PropertyUpdate, SupportedTrigger, SupportedTriggers, Transports};
|
||||
use rustical_dav::header::Depth;
|
||||
use rustical_xml::{EnumUnitVariants, EnumVariants, XmlDeserialize, XmlSerialize};
|
||||
|
||||
#[derive(XmlDeserialize, XmlSerialize, PartialEq, Clone, EnumUnitVariants, EnumVariants)]
|
||||
@@ -10,11 +11,21 @@ pub enum DavPushExtensionProp {
|
||||
Transports(Transports),
|
||||
#[xml(ns = "rustical_dav::namespace::NS_DAVPUSH")]
|
||||
Topic(String),
|
||||
#[xml(skip_deserializing)]
|
||||
#[xml(ns = "rustical_dav::namespace::NS_DAVPUSH")]
|
||||
SupportedTriggers(SupportedTriggers),
|
||||
}
|
||||
|
||||
pub trait DavPushExtension {
|
||||
fn get_topic(&self) -> String;
|
||||
|
||||
fn supported_triggers(&self) -> SupportedTriggers {
|
||||
SupportedTriggers(vec![
|
||||
SupportedTrigger::ContentUpdate(ContentUpdate(Depth::One)),
|
||||
SupportedTrigger::PropertyUpdate(PropertyUpdate(Depth::One)),
|
||||
])
|
||||
}
|
||||
|
||||
fn get_prop(
|
||||
&self,
|
||||
prop: &DavPushExtensionPropName,
|
||||
@@ -24,6 +35,9 @@ pub trait DavPushExtension {
|
||||
DavPushExtensionProp::Transports(Default::default())
|
||||
}
|
||||
DavPushExtensionPropName::Topic => DavPushExtensionProp::Topic(self.get_topic()),
|
||||
DavPushExtensionPropName::SupportedTriggers => {
|
||||
DavPushExtensionProp::SupportedTriggers(self.supported_triggers())
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user