migrate to new ical-rs version

This commit is contained in:
Lennart K
2026-01-07 11:32:53 +01:00
parent d84158e8ad
commit 69acde10ba
23 changed files with 227 additions and 1498 deletions

View File

@@ -1,4 +1,4 @@
use std::io::BufReader;
use std::{collections::HashMap, io::BufReader};
use crate::Error;
use crate::addressbook::AddressbookResourceService;
@@ -9,7 +9,7 @@ use axum::{
use http::StatusCode;
use ical::{
parser::{Component, ComponentMut, vcard},
property::Property,
property::ContentLine,
};
use rustical_store::{Addressbook, AddressbookStore, SubscriptionStore, auth::Principal};
use tracing::instrument;
@@ -33,12 +33,12 @@ pub async fn route_import<AS: AddressbookStore, S: SubscriptionStore>(
let uid = card.get_uid();
if uid.is_none() {
let mut card_mut = card.mutable();
card_mut.set_property(Property {
card_mut.add_content_line(ContentLine {
name: "UID".to_owned(),
value: Some(uuid::Uuid::new_v4().to_string()),
params: vec![],
params: vec![].into(),
});
card = card_mut.verify().unwrap();
card = card_mut.build(&HashMap::new()).unwrap();
}
objects.push(card.try_into().unwrap());

View File

@@ -3,7 +3,7 @@ use crate::{
addressbook::methods::report::addressbook_query::PropFilterElement,
};
use derive_more::{From, Into};
use ical::property::Property;
use ical::property::ContentLine;
use rustical_dav::xml::{PropfindType, TextMatchElement};
use rustical_ical::{AddressObject, UtcDateTime};
use rustical_xml::{ValueDeserialize, XmlDeserialize, XmlRootTag};
@@ -32,8 +32,8 @@ pub struct ParamFilterElement {
impl ParamFilterElement {
#[must_use]
pub fn match_property(&self, prop: &Property) -> bool {
let Some(param) = prop.get_param(&self.name) else {
pub fn match_property(&self, prop: &ContentLine) -> bool {
let Some(param) = prop.params.get_param(&self.name) else {
return self.is_not_defined.is_some();
};
if self.is_not_defined.is_some() {

View File

@@ -1,5 +1,5 @@
use super::{Allof, ParamFilterElement};
use ical::{parser::Component, property::Property};
use ical::{parser::Component, property::ContentLine};
use rustical_dav::xml::TextMatchElement;
use rustical_ical::AddressObject;
use rustical_xml::XmlDeserialize;
@@ -31,7 +31,7 @@ pub struct PropFilterElement {
impl PropFilterElement {
#[must_use]
pub fn match_property(&self, property: &Property) -> bool {
pub fn match_property(&self, property: &ContentLine) -> bool {
if self.param_filter.is_empty() && self.text_match.is_empty() {
// Filter empty
return true;
@@ -67,11 +67,11 @@ impl PropFilterElement {
}
pub trait PropFilterable {
fn get_named_properties(&self, name: &str) -> Vec<&Property>;
fn get_named_properties(&self, name: &str) -> Vec<&ContentLine>;
}
impl PropFilterable for AddressObject {
fn get_named_properties(&self, name: &str) -> Vec<&Property> {
fn get_named_properties(&self, name: &str) -> Vec<&ContentLine> {
self.get_vcard().get_named_properties(name)
}
}