mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-13 22:52:22 +00:00
Add calendar-order prop
This commit is contained in:
@@ -36,6 +36,7 @@ pub struct MkcolCalendarProp {
|
||||
displayname: Option<String>,
|
||||
calendar_description: Option<String>,
|
||||
calendar_color: Option<String>,
|
||||
order: Option<i64>,
|
||||
calendar_timezone: Option<String>,
|
||||
supported_calendar_component_set: Option<SupportedCalendarComponentSetElement>,
|
||||
}
|
||||
@@ -69,6 +70,7 @@ pub async fn route_mkcol_calendar<A: CheckAuthentication, C: CalendarStore + ?Si
|
||||
let calendar = Calendar {
|
||||
id: cid.to_owned(),
|
||||
owner: principal,
|
||||
order: request.order.unwrap_or(0),
|
||||
name: request.displayname,
|
||||
timezone: request.calendar_timezone,
|
||||
color: request.calendar_color,
|
||||
|
||||
@@ -124,6 +124,7 @@ pub enum CalendarProp {
|
||||
Displayname,
|
||||
CalendarColor,
|
||||
CalendarDescription,
|
||||
CalendarOrder,
|
||||
SupportedCalendarComponentSet,
|
||||
SupportedCalendarData,
|
||||
Getcontenttype,
|
||||
@@ -142,6 +143,8 @@ pub enum CalendarPropResponse {
|
||||
CalendarColor(TextNode),
|
||||
#[serde(rename = "C:calendar-description", alias = "calendar-description")]
|
||||
CalendarDescription(TextNode),
|
||||
#[serde(rename = "IC:calendar-description", alias = "calendar-description")]
|
||||
CalendarOrder(TextNode),
|
||||
#[serde(
|
||||
rename = "C:supported-calendar-component-set",
|
||||
alias = "supported-calendar-component-set"
|
||||
@@ -193,6 +196,9 @@ impl Resource for CalendarFile {
|
||||
CalendarProp::CalendarDescription => Ok(CalendarPropResponse::CalendarDescription(
|
||||
TextNode(self.calendar.description.clone()),
|
||||
)),
|
||||
CalendarProp::CalendarOrder => Ok(CalendarPropResponse::CalendarOrder(TextNode(
|
||||
format!("{}", self.calendar.order).into(),
|
||||
))),
|
||||
CalendarProp::SupportedCalendarComponentSet => {
|
||||
Ok(CalendarPropResponse::SupportedCalendarComponentSet(
|
||||
SupportedCalendarComponentSet {
|
||||
|
||||
@@ -3,6 +3,7 @@ CREATE TABLE calendars (
|
||||
owner TEXT NOT NULL,
|
||||
name TEXT,
|
||||
description TEXT,
|
||||
'order' INT DEFAULT 0 NOT NULL,
|
||||
color TEXT,
|
||||
timezone TEXT NOT NULL
|
||||
);
|
||||
@@ -5,6 +5,7 @@ pub struct Calendar {
|
||||
pub id: String,
|
||||
pub name: Option<String>,
|
||||
pub owner: String,
|
||||
pub order: i64,
|
||||
pub description: Option<String>,
|
||||
pub color: Option<String>,
|
||||
pub timezone: Option<String>,
|
||||
|
||||
@@ -35,7 +35,7 @@ impl CalendarStore for SqliteCalendarStore {
|
||||
async fn get_calendar(&self, id: &str) -> Result<Calendar, Error> {
|
||||
let cal = sqlx::query_as!(
|
||||
Calendar,
|
||||
"SELECT id, name, owner, description, color, timezone FROM calendars WHERE id = ?",
|
||||
r#"SELECT id, name, owner, "order", description, color, timezone FROM calendars WHERE id = ?"#,
|
||||
id
|
||||
)
|
||||
.fetch_one(&self.db)
|
||||
@@ -46,7 +46,7 @@ impl CalendarStore for SqliteCalendarStore {
|
||||
async fn get_calendars(&self, _owner: &str) -> Result<Vec<Calendar>, Error> {
|
||||
let cals = sqlx::query_as!(
|
||||
Calendar,
|
||||
"SELECT id, name, owner, description, color, timezone FROM calendars"
|
||||
r#"SELECT id, name, owner, "order", description, color, timezone FROM calendars"#,
|
||||
)
|
||||
.fetch_all(&self.db)
|
||||
.await?;
|
||||
@@ -55,11 +55,12 @@ impl CalendarStore for SqliteCalendarStore {
|
||||
|
||||
async fn insert_calendar(&mut self, cid: String, calendar: Calendar) -> Result<(), Error> {
|
||||
sqlx::query!(
|
||||
"INSERT INTO calendars (id, name, description, owner, color, timezone) VALUES (?, ?, ?, ?, ?, ?)",
|
||||
r#"INSERT INTO calendars (id, name, description, owner, "order", color, timezone) VALUES (?, ?, ?, ?, ?, ?, ?)"#,
|
||||
cid,
|
||||
calendar.name,
|
||||
calendar.description,
|
||||
calendar.owner,
|
||||
calendar.order,
|
||||
calendar.color,
|
||||
calendar.timezone
|
||||
).execute(&self.db).await?;
|
||||
|
||||
Reference in New Issue
Block a user