diff --git a/crates/caldav/src/calendar/methods/import.rs b/crates/caldav/src/calendar/methods/import.rs index 0c2398b..a909cf0 100644 --- a/crates/caldav/src/calendar/methods/import.rs +++ b/crates/caldav/src/calendar/methods/import.rs @@ -9,6 +9,7 @@ use ical::{ generator::Emitter, parser::{Component, ComponentMut}, }; +use rustical_dav::header::Overwrite; use rustical_ical::{CalendarObject, CalendarObjectType}; use rustical_store::{ Calendar, CalendarMetadata, CalendarStore, SubscriptionStore, auth::Principal, @@ -21,6 +22,7 @@ pub async fn route_import( Path((principal, cal_id)): Path<(String, String)>, user: Principal, State(resource_service): State>, + overwrite: Overwrite, body: String, ) -> Result { if !user.is_principal(&principal) { @@ -100,7 +102,9 @@ pub async fn route_import( }; let cal_store = resource_service.cal_store; - cal_store.import_calendar(new_cal, objects, false).await?; + cal_store + .import_calendar(new_cal, objects, overwrite.is_true()) + .await?; Ok(StatusCode::OK.into_response()) }