diff --git a/src/data_provider/history.rs b/src/data_provider/history.rs index 085c1fe..1671f19 100644 --- a/src/data_provider/history.rs +++ b/src/data_provider/history.rs @@ -15,7 +15,7 @@ pub fn get_history_of_set(id: Id) -> Result, NotificationData> let head = app_dir.clone().join(format!("set_{}_history.csv", id)); let mut lines = Vec::new(); - append_lines_if_exists(head, &mut lines); + append_lines_if_exists(head, &mut lines)?; lines.reverse(); Ok(parse_history_items(lines)) } diff --git a/src/data_provider/settings.rs b/src/data_provider/settings.rs index dce970d..7336105 100644 --- a/src/data_provider/settings.rs +++ b/src/data_provider/settings.rs @@ -1,6 +1,5 @@ -use crate::notification::{MaybeError, NotificationData}; use crate::notification::NotificationData::{DbLoadError, DbSaveError}; -use iced::futures::StreamExt; +use crate::notification::{MaybeError, NotificationData}; use rusqlite::Connection; pub fn get_setting(key: String, connection: &Connection) -> Option { diff --git a/src/data_provider/web_api.rs b/src/data_provider/web_api.rs index 24f3dec..b166775 100644 --- a/src/data_provider/web_api.rs +++ b/src/data_provider/web_api.rs @@ -30,7 +30,7 @@ pub async fn send_data(id: String) -> MaybeError { .text() .await .map_err(|_| WebApiUnavailable)?; - set_local_version(new_version.parse::().unwrap_or_default()).await; + set_local_version(new_version.parse::().unwrap_or_default()).await?; Ok(()) } @@ -74,7 +74,7 @@ pub async fn load_data(id: String, temp: bool) -> MaybeError { .text() .await .map_err(|_| WebApiUnavailable)?; - set_local_version(version.parse::().unwrap_or_default()).await; + set_local_version(version.parse::().unwrap_or_default()).await?; Ok(()) } diff --git a/src/navigation.rs b/src/navigation.rs index 35c4c1b..1b3f223 100644 --- a/src/navigation.rs +++ b/src/navigation.rs @@ -178,7 +178,7 @@ impl ScreenState { if web > local { info!("Web version is newer than local version"); load_data(string, true).await?; - set_local_version(web).await; + set_local_version(web).await?; } else { return Ok(false); } @@ -298,7 +298,7 @@ impl ScreenState { return match page { Repetition(page) => page.press(&message), _ => Task::none(), - } + } } Task::none() } diff --git a/src/pages/sync.rs b/src/pages/sync.rs index 0ef132a..e9f7900 100644 --- a/src/pages/sync.rs +++ b/src/pages/sync.rs @@ -139,8 +139,15 @@ impl NavigatedPage for SyncState { DisableSync => { let mut state = self.state.lock(); state.sync_data.key = None; - delete_settings("SYNC_KEY".to_string(), &state.connection); - delete_settings("AUTO_WEB_FETCH".to_string(), &state.connection); + let save_result = || { + delete_settings("SYNC_KEY".to_string(), &state.connection)?; + delete_settings("AUTO_WEB_FETCH".to_string(), &state.connection)?; + Ok::<(), NotificationData>(()) + }; + + if let Err(error) = save_result() { + return push_error_task!(error); + } } SwitchAutoSync => { self.auto_fetch = !self.auto_fetch;