Dav Push: Support for calendar collections

This commit is contained in:
Lennart
2025-01-12 22:31:39 +01:00
parent 974acdf2cb
commit 347061ff8f
10 changed files with 564 additions and 22 deletions

View File

@@ -16,3 +16,24 @@ pub use subscription_store::*;
pub use addressbook::{AddressObject, Addressbook};
pub use calendar::{Calendar, CalendarObject};
#[derive(Debug, Clone)]
pub enum CollectionOperationType {
// Sync-Token increased
Object,
Delete,
}
#[derive(Debug, Clone)]
pub enum CollectionOperationDomain {
Calendar,
Addressbook,
}
#[derive(Debug, Clone)]
pub struct CollectionOperation {
pub r#type: CollectionOperationType,
pub domain: CollectionOperationDomain,
pub topic: String,
pub sync_token: Option<String>,
}

View File

@@ -9,7 +9,7 @@ pub struct Subscription {
pub push_resource: String,
}
#[async_trait(?Send)]
#[async_trait]
pub trait SubscriptionStore: Send + Sync + 'static {
async fn get_subscriptions(&self, topic: &str) -> Result<Vec<Subscription>, Error>;
async fn get_subscription(&self, id: &str) -> Result<Subscription, Error>;