mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-13 19:22:26 +00:00
Outsource some Calendar info to CalendarMetadata struct
This commit is contained in:
@@ -6,13 +6,23 @@ use rustical_ical::CalendarObjectType;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Debug, Default, Clone, Serialize, Deserialize)]
|
||||
pub struct Calendar {
|
||||
pub principal: String,
|
||||
pub id: String,
|
||||
pub struct CalendarMetadata {
|
||||
// Attributes that may be outsourced
|
||||
pub displayname: Option<String>,
|
||||
pub order: i64,
|
||||
pub description: Option<String>,
|
||||
pub color: Option<String>,
|
||||
}
|
||||
|
||||
#[derive(Debug, Default, Clone, Serialize, Deserialize)]
|
||||
pub struct Calendar {
|
||||
// Attributes that may be outsourced
|
||||
#[serde(flatten)]
|
||||
pub meta: CalendarMetadata,
|
||||
|
||||
// Common calendar attributes
|
||||
pub principal: String,
|
||||
pub id: String,
|
||||
pub timezone_id: Option<String>,
|
||||
pub deleted_at: Option<NaiveDateTime>,
|
||||
pub synctoken: i64,
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
use crate::{Addressbook, AddressbookStore, Calendar, CalendarStore, Error};
|
||||
use crate::{
|
||||
Addressbook, AddressbookStore, Calendar, CalendarStore, Error, calendar::CalendarMetadata,
|
||||
};
|
||||
use async_trait::async_trait;
|
||||
use derive_more::derive::Constructor;
|
||||
use rustical_ical::{AddressObject, CalendarObject, CalendarObjectType};
|
||||
@@ -14,12 +16,14 @@ fn birthday_calendar(addressbook: Addressbook) -> Calendar {
|
||||
Calendar {
|
||||
principal: addressbook.principal,
|
||||
id: format!("{}{}", BIRTHDAYS_PREFIX, addressbook.id),
|
||||
displayname: addressbook
|
||||
.displayname
|
||||
.map(|name| format!("{name} birthdays")),
|
||||
order: 0,
|
||||
description: None,
|
||||
color: None,
|
||||
meta: CalendarMetadata {
|
||||
displayname: addressbook
|
||||
.displayname
|
||||
.map(|name| format!("{name} birthdays")),
|
||||
order: 0,
|
||||
description: None,
|
||||
color: None,
|
||||
},
|
||||
timezone_id: None,
|
||||
deleted_at: addressbook.deleted_at,
|
||||
synctoken: addressbook.synctoken,
|
||||
|
||||
@@ -22,7 +22,7 @@ pub use secret::Secret;
|
||||
pub use subscription_store::*;
|
||||
|
||||
pub use addressbook::Addressbook;
|
||||
pub use calendar::Calendar;
|
||||
pub use calendar::{Calendar, CalendarMetadata};
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub enum CollectionOperationInfo {
|
||||
|
||||
Reference in New Issue
Block a user