diff --git a/src/wac_campfire.rs b/src/wac_campfire.rs index 8520b21..8388812 100644 --- a/src/wac_campfire.rs +++ b/src/wac_campfire.rs @@ -27,7 +27,8 @@ struct Event { _end_time: Option, #[serde(alias = "eventName")] event_name: String, - location: String, + // Seen in test data where this can be missing + location: Option, #[serde(alias = "Id")] id: String, #[serde(alias = "startDate")] @@ -95,7 +96,7 @@ impl Calendar { Some(Ok(EventInstance { calendar_ui: self.config.ui.clone(), dtstart, - location: Some(ev.location.clone()), + location: ev.location.clone(), recurrence_id: None, summary: Some(ev.event_name.clone()), uid: Some(ev.id.clone()), @@ -111,9 +112,10 @@ impl Calendar { } pub(crate) fn read_from_config(config: Config) -> Result { - let path = &config.dl.file_path; - let s = std::fs::read_to_string(path).with_context(|| format!("Couldn't read {path:?}"))?; - Self::read_from_str(config, &s) + let path = config.dl.file_path.clone(); + let s = + std::fs::read_to_string(&path).with_context(|| format!("Couldn't read {path:?}"))?; + Self::read_from_str(config, &s).with_context(|| format!("Couldn't parse {path:?}")) } } diff --git a/src/wac_common_ninja.rs b/src/wac_common_ninja.rs index 6a1d085..4647023 100644 --- a/src/wac_common_ninja.rs +++ b/src/wac_common_ninja.rs @@ -95,9 +95,10 @@ impl Calendar { } pub(crate) fn read_from_config(config: Config) -> Result { - let path = &config.dl.file_path; - let s = std::fs::read_to_string(path).with_context(|| format!("Couldn't read {path:?}"))?; - Self::read_from_str(config, &s) + let path = config.dl.file_path.clone(); + let s = + std::fs::read_to_string(&path).with_context(|| format!("Couldn't read {path:?}"))?; + Self::read_from_str(config, &s).with_context(|| format!("Couldn't parse {path:?}")) } } diff --git a/src/wac_ical.rs b/src/wac_ical.rs index 9bebdc2..dae03ef 100644 --- a/src/wac_ical.rs +++ b/src/wac_ical.rs @@ -267,8 +267,9 @@ impl Calendar { } pub(crate) fn read_from_config(config: Config) -> Result { - let path = &config.dl.file_path; - let s = std::fs::read_to_string(path).with_context(|| format!("Couldn't read {path:?}"))?; - Self::read_from_str(config, &s) + let path = config.dl.file_path.clone(); + let s = + std::fs::read_to_string(&path).with_context(|| format!("Couldn't read {path:?}"))?; + Self::read_from_str(config, &s).with_context(|| format!("Couldn't parse {path:?}")) } }