diff options
Diffstat (limited to 'src/controller/categories.rs')
-rw-r--r-- | src/controller/categories.rs | 55 |
1 files changed, 29 insertions, 26 deletions
diff --git a/src/controller/categories.rs b/src/controller/categories.rs index ff2d8e7..8772e38 100644 --- a/src/controller/categories.rs +++ b/src/controller/categories.rs @@ -2,7 +2,6 @@ use http_body_util::Full; use hyper::body::Bytes; use hyper::Response; use std::collections::HashMap; -use tera::Context; use crate::controller::utils; use crate::controller::wallet::Wallet; @@ -15,13 +14,14 @@ pub async fn table( wallet: &Wallet, query: queries::Categories, ) -> Response<Full<Bytes>> { - let categories = db::categories::list(&wallet.pool).await; + let categories = db::categories::list(&wallet.db_conn).await; - let mut context = Context::new(); - context.insert("header", &templates::Header::Categories); - context.insert("connected_user", &wallet.user); - context.insert("categories", &categories); - context.insert("highlight", &query.highlight); + let context = minijinja::context!( + header => templates::Header::Categories, + connected_user => wallet.user, + categories => categories, + highlight => query.highlight + ); utils::template( &wallet.assets, @@ -40,11 +40,12 @@ async fn create_form_feedback( form: HashMap<String, String>, error: Option<String>, ) -> Response<Full<Bytes>> { - let mut context = Context::new(); - context.insert("header", &templates::Header::Categories); - context.insert("connected_user", &wallet.user.clone()); - context.insert("form", &form); - context.insert("error", &error); + let context = minijinja::context!( + header => &templates::Header::Categories, + connected_user => &wallet.user.clone(), + form => &form, + error => &error + ); utils::template( &wallet.assets, @@ -64,7 +65,7 @@ pub async fn create( match validation::category::create(&form) { Some(category) => { - match db::categories::create(&wallet.pool, &category).await { + match db::categories::create(&wallet.db_conn, category).await { Some(id) => { utils::redirect(&format!("/categories?highlight={}", id)) } @@ -85,18 +86,19 @@ async fn update_form_feedback( form: HashMap<String, String>, error: Option<String>, ) -> Response<Full<Bytes>> { - let category = db::categories::get(&wallet.pool, id).await; + let category = db::categories::get(&wallet.db_conn, id).await; let is_category_used = - db::payments::is_category_used(&wallet.pool, id).await; - - let mut context = Context::new(); - context.insert("header", &templates::Header::Categories); - context.insert("connected_user", &wallet.user); - context.insert("id", &id); - context.insert("category", &category); - context.insert("is_category_used", &is_category_used); - context.insert("form", &form); - context.insert("error", &error); + db::payments::is_category_used(&wallet.db_conn, id).await; + + let context = minijinja::context!( + header => templates::Header::Categories, + connected_user => wallet.user, + id => id, + category => category, + is_category_used => is_category_used, + form => form, + error => error + ); utils::template( &wallet.assets, @@ -117,7 +119,8 @@ pub async fn update( match validation::category::update(&form) { Some(update_category) => { - if db::categories::update(&wallet.pool, id, &update_category).await + if db::categories::update(&wallet.db_conn, id, update_category) + .await { utils::redirect(&format!("/categories?highlight={}", id)) } else { @@ -129,7 +132,7 @@ pub async fn update( } pub async fn delete(id: i64, wallet: &Wallet) -> Response<Full<Bytes>> { - if db::categories::delete(&wallet.pool, id).await { + if db::categories::delete(&wallet.db_conn, id).await { utils::redirect("/categories") } else { update_form_feedback( |