mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-14 07:02:24 +00:00
resourcetype: Proper namespace handling
This commit is contained in:
@@ -13,7 +13,7 @@ use async_trait::async_trait;
|
||||
use derive_more::derive::{From, Into};
|
||||
use rustical_dav::privileges::UserPrivilegeSet;
|
||||
use rustical_dav::resource::{Resource, ResourceService};
|
||||
use rustical_dav::xml::HrefElement;
|
||||
use rustical_dav::xml::{HrefElement, Resourcetype, ResourcetypeInner};
|
||||
use rustical_store::auth::User;
|
||||
use rustical_store::{Calendar, CalendarStore};
|
||||
use rustical_xml::{XmlDeserialize, XmlSerialize};
|
||||
@@ -93,11 +93,33 @@ impl Resource for CalendarResource {
|
||||
type Error = Error;
|
||||
type PrincipalResource = PrincipalResource;
|
||||
|
||||
fn get_resourcetype(&self) -> &'static [&'static str] {
|
||||
fn get_resourcetype(&self) -> Resourcetype {
|
||||
if self.0.subscription_url.is_none() {
|
||||
&["collection", "C:calendar"]
|
||||
Resourcetype {
|
||||
inner: &[
|
||||
ResourcetypeInner {
|
||||
ns: rustical_dav::namespace::NS_DAV,
|
||||
name: "collection",
|
||||
},
|
||||
ResourcetypeInner {
|
||||
ns: rustical_dav::namespace::NS_CALDAV,
|
||||
name: "calendar",
|
||||
},
|
||||
],
|
||||
}
|
||||
} else {
|
||||
&["collection", "CS:subscribed"]
|
||||
Resourcetype {
|
||||
inner: &[
|
||||
ResourcetypeInner {
|
||||
ns: rustical_dav::namespace::NS_DAV,
|
||||
name: "collection",
|
||||
},
|
||||
ResourcetypeInner {
|
||||
ns: rustical_dav::namespace::NS_CALENDARSERVER,
|
||||
name: "subscribed",
|
||||
},
|
||||
],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ use derive_more::derive::{From, Into};
|
||||
use rustical_dav::{
|
||||
privileges::UserPrivilegeSet,
|
||||
resource::{Resource, ResourceService},
|
||||
xml::Resourcetype,
|
||||
};
|
||||
use rustical_store::{auth::User, CalendarObject, CalendarStore};
|
||||
use rustical_xml::{XmlDeserialize, XmlSerialize};
|
||||
@@ -53,8 +54,8 @@ impl Resource for CalendarObjectResource {
|
||||
type Error = Error;
|
||||
type PrincipalResource = PrincipalResource;
|
||||
|
||||
fn get_resourcetype(&self) -> &'static [&'static str] {
|
||||
&[]
|
||||
fn get_resourcetype(&self) -> Resourcetype {
|
||||
Resourcetype { inner: &[] }
|
||||
}
|
||||
|
||||
fn get_prop(
|
||||
|
||||
@@ -4,7 +4,7 @@ use actix_web::dev::ResourceMap;
|
||||
use async_trait::async_trait;
|
||||
use rustical_dav::privileges::UserPrivilegeSet;
|
||||
use rustical_dav::resource::{Resource, ResourceService};
|
||||
use rustical_dav::xml::HrefElement;
|
||||
use rustical_dav::xml::{HrefElement, Resourcetype, ResourcetypeInner};
|
||||
use rustical_store::auth::User;
|
||||
use rustical_store::CalendarStore;
|
||||
use rustical_xml::{XmlDeserialize, XmlSerialize};
|
||||
@@ -57,8 +57,19 @@ impl Resource for PrincipalResource {
|
||||
type Error = Error;
|
||||
type PrincipalResource = PrincipalResource;
|
||||
|
||||
fn get_resourcetype(&self) -> &'static [&'static str] {
|
||||
&["collection", "principal"]
|
||||
fn get_resourcetype(&self) -> Resourcetype {
|
||||
Resourcetype {
|
||||
inner: &[
|
||||
ResourcetypeInner {
|
||||
ns: rustical_dav::namespace::NS_DAV,
|
||||
name: "collection",
|
||||
},
|
||||
ResourcetypeInner {
|
||||
ns: rustical_dav::namespace::NS_DAV,
|
||||
name: "principal",
|
||||
},
|
||||
],
|
||||
}
|
||||
}
|
||||
|
||||
fn get_prop(
|
||||
|
||||
Reference in New Issue
Block a user