simplify resourcetype

This commit is contained in:
Lennart
2024-11-04 20:46:16 +01:00
parent ab9c5f6b38
commit 2143bc850c
13 changed files with 98 additions and 72 deletions

View File

@@ -42,7 +42,7 @@ pub enum AddressObjectProp {
#[serde(skip_deserializing, untagged)]
#[from]
ExtCommonProperties(CommonPropertiesProp<Resourcetype>),
ExtCommonProperties(CommonPropertiesProp),
#[serde(untagged)]
#[default]
@@ -55,17 +55,16 @@ pub struct AddressObjectResource {
pub principal: String,
}
#[derive(Debug, Clone, Deserialize, Serialize, Default, PartialEq)]
#[serde(rename_all = "kebab-case")]
pub struct Resourcetype {}
impl Resource for AddressObjectResource {
type PropName = AddressObjectPropName;
type Prop = AddressObjectProp;
type Error = Error;
type ResourceType = Resourcetype;
type PrincipalResource = PrincipalResource;
fn get_resourcetype() -> &'static [&'static str] {
&[]
}
fn get_prop(
&self,
_rmap: &ResourceMap,

View File

@@ -33,14 +33,6 @@ impl Default for SupportedAddressData {
}
}
#[derive(Debug, Clone, Deserialize, Serialize, Default, PartialEq)]
#[serde(rename_all = "kebab-case")]
pub struct Resourcetype {
#[serde(rename = "CARD:addressbook", alias = "addressbook")]
addressbook: (),
collection: (),
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
#[serde(rename_all = "kebab-case")]
pub enum ReportMethod {

View File

@@ -1,6 +1,6 @@
use super::methods::mkcol::route_mkcol;
use super::methods::report::route_report_addressbook;
use super::prop::{Resourcetype, SupportedAddressData, SupportedReportSet};
use super::prop::{SupportedAddressData, SupportedReportSet};
use crate::address_object::resource::AddressObjectResource;
use crate::principal::PrincipalResource;
use crate::Error;
@@ -68,7 +68,7 @@ pub enum AddressbookProp {
#[serde(skip_deserializing, untagged)]
#[from]
ExtCommonProperties(CommonPropertiesProp<Resourcetype>),
ExtCommonProperties(CommonPropertiesProp),
#[serde(untagged)]
#[default]
@@ -82,9 +82,12 @@ impl Resource for AddressbookResource {
type PropName = AddressbookPropName;
type Prop = AddressbookProp;
type Error = Error;
type ResourceType = Resourcetype;
type PrincipalResource = PrincipalResource;
fn get_resourcetype() -> &'static [&'static str] {
&["collection", "CARD:addressbook"]
}
fn get_prop(
&self,
_rmap: &ResourceMap,

View File

@@ -25,13 +25,6 @@ pub struct PrincipalResource {
principal: String,
}
#[derive(Deserialize, Serialize, Default, Debug, PartialEq)]
#[serde(rename_all = "kebab-case")]
pub struct Resourcetype {
principal: (),
collection: (),
}
#[derive(Default, Deserialize, Serialize, From, PartialEq)]
#[serde(rename_all = "kebab-case")]
pub enum PrincipalProp {
@@ -47,7 +40,7 @@ pub enum PrincipalProp {
#[serde(skip_deserializing, untagged)]
#[from]
ExtCommonProperties(CommonPropertiesProp<Resourcetype>),
ExtCommonProperties(CommonPropertiesProp),
#[serde(untagged)]
#[default]
@@ -73,9 +66,12 @@ impl Resource for PrincipalResource {
type PropName = PrincipalPropName;
type Prop = PrincipalProp;
type Error = Error;
type ResourceType = Resourcetype;
type PrincipalResource = PrincipalResource;
fn get_resourcetype() -> &'static [&'static str] {
&["collection", "principal"]
}
fn get_prop(
&self,
rmap: &ResourceMap,