From 0adf5a093494bdb7f5d5c0f12913133e333ddfad Mon Sep 17 00:00:00 2001 From: Joris Date: Fri, 31 Jan 2025 22:28:53 +0100 Subject: Migrate to tokio_rusqlite --- src/db/utils.rs | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/db/utils.rs') diff --git a/src/db/utils.rs b/src/db/utils.rs index 621a69c..f61d20a 100644 --- a/src/db/utils.rs +++ b/src/db/utils.rs @@ -1,3 +1,27 @@ +use crate::model::report::Report; +use tokio_rusqlite::Row; + pub fn format_key_for_search(value: &str) -> String { format!("replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(lower({}), 'à', 'a'), 'â', 'a'), 'ç', 'c'), 'è', 'e'), 'é', 'e'), 'ê', 'e'), 'ë', 'e'), 'î', 'i'), 'ï', 'i'), 'ô', 'o'), 'ù', 'u'), 'û', 'u'), 'ü', 'u')", value) } + +pub fn one>>( + mut iter: I, +) -> Result { + match iter.next() { + Some(Ok(user)) => Ok(user), + Some(Err(err)) => Err(tokio_rusqlite::Error::Rusqlite(err)), + None => Err(tokio_rusqlite::Error::Rusqlite( + rusqlite::Error::QueryReturnedNoRows, + )), + } +} + +pub fn row_to_report(row: &Row) -> Result { + Ok(Report { + date: row.get(0)?, + name: row.get(1)?, + amount: row.get(2)?, + action: row.get(3)?, + }) +} -- cgit v1.2.3