aboutsummaryrefslogtreecommitdiff
path: root/src/db
diff options
context:
space:
mode:
Diffstat (limited to 'src/db')
-rw-r--r--src/db/payments.rs9
-rw-r--r--src/db/utils.rs4
2 files changed, 6 insertions, 7 deletions
diff --git a/src/db/payments.rs b/src/db/payments.rs
index 4a6774c..93b815f 100644
--- a/src/db/payments.rs
+++ b/src/db/payments.rs
@@ -61,9 +61,7 @@ pub async fn count(
payment_query: &queries::Payments,
) -> Count {
let mut query = r#"
- SELECT
- COUNT(*) AS count,
- SUM(payments.cost) AS total_cost
+ SELECT COUNT(*), SUM(payments.cost)
FROM payments
INNER JOIN users ON users.id = payments.user_id
INNER JOIN categories ON categories.id = payments.category_id
@@ -85,8 +83,7 @@ pub async fn count(
match res {
Ok(count) => count,
- Err(err) => {
- log::error!("Error counting payments: {:?}", err);
+ Err(_) => {
Count {
count: 0,
total_cost: 0,
@@ -192,7 +189,7 @@ fn complete_name(
)
.as_str(),
);
- params.push(Box::new(name));
+ params.push(Box::new(text::format_search(&name)));
}
}
}
diff --git a/src/db/utils.rs b/src/db/utils.rs
index f61d20a..2ff0f13 100644
--- a/src/db/utils.rs
+++ b/src/db/utils.rs
@@ -2,7 +2,9 @@ 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)
+ // Lower doesn’t work on accentuated letters, hence the need to remove manually accents for
+ // uppercase letters as well.
+ format!("replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(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'), 'À', 'A'), 'Â', 'A'), 'Ç', 'C'), 'È', 'E'), 'É', 'E'), 'Ê', 'E'), 'Ë', 'E'), 'Î', 'I'), 'Ï', 'I'), 'Ô', 'O'), 'Ù', 'U'), 'Û', 'U'), 'Ü', 'U')", value)
}
pub fn one<A, I: Iterator<Item = Result<A, rusqlite::Error>>>(