new struct for filter repo

main
Mathias Rothenhaeusler 2023-04-19 19:13:55 +02:00
parent 40c4757a07
commit e32e96cb38
2 changed files with 46 additions and 32 deletions

View File

@ -2,8 +2,21 @@ use mysql::{params, prelude::Queryable, PooledConn};
use crate::entity::{filter::Filter, filter_config::FilterConfig};
pub fn find_by_id(filter_id: &usize, conn: &mut PooledConn) -> Result<Vec<Filter>, mysql::Error> {
let stat = conn
#[derive(Debug)]
pub struct FilterRepo<'a> {
db_pool: &'a mut PooledConn,
}
impl<'a> FilterRepo<'a> {
pub fn new(db_pool: &'a mut PooledConn) -> Self {
Self { db_pool }
}
pub fn find_by_id(
self,
filter_id: &usize,
) -> Result<Vec<Filter>, mysql::Error> {
let stat = self.db_pool
.prep(
"SELECT f.filter_module_id, f.file_name, f.description, fm.filter_module_no, fm.filter_user
FROM filter f
@ -12,7 +25,7 @@ pub fn find_by_id(filter_id: &usize, conn: &mut PooledConn) -> Result<Vec<Filter
")
.unwrap();
conn.exec_map(
self.db_pool.exec_map(
stat,
params! {"filter_id" => filter_id},
|(filter_module_id, file_name, description, filter_module_no, filter_user)| Filter {
@ -26,10 +39,10 @@ pub fn find_by_id(filter_id: &usize, conn: &mut PooledConn) -> Result<Vec<Filter
}
pub fn find_filter_configs(
self,
filter_id: &usize,
conn: &mut PooledConn,
) -> Result<Vec<FilterConfig>, mysql::Error> {
let stat = conn
let stat = self.db_pool
.prep(
"
SELECT t1.attribute, t1.value1, IF(t1.value2 is null or t1.value2 = '', 'EMPTY', t1.value2) as value2, t2.name, t1.upd_ts
@ -40,17 +53,16 @@ pub fn find_filter_configs(
)
.unwrap();
conn.exec_map(
self.db_pool.exec_map(
stat,
params! {"filter_id" => filter_id},
|(attribute, value1, value2, name, upd_ts)| {
FilterConfig {
|(attribute, value1, value2, name, upd_ts)| FilterConfig {
attribute,
value1,
value2,
name,
upd_ts,
}
},
)
}
}

View File

@ -1,11 +1,12 @@
use mysql::PooledConn;
use crate::{
entity::{filter::Filter, filter_config::FilterConfig},
repository::filter_repo,
repository::filter_repo::FilterRepo,
};
use mysql::PooledConn;
pub fn get_filter(filter_id: &usize, all: bool, conn: &mut PooledConn) {
let result = filter_repo::find_by_id(filter_id, conn);
let repo: FilterRepo = FilterRepo::new(conn);
let result = repo.find_by_id(filter_id);
match result {
Ok(filters) => {
@ -22,7 +23,7 @@ pub fn get_filter(filter_id: &usize, all: bool, conn: &mut PooledConn) {
});
if all {
get_filter_configs(&*filter_id, conn)
get_filter_configs(filter_id, conn)
} else {
println!("{}", "-".repeat(150));
}
@ -33,7 +34,8 @@ pub fn get_filter(filter_id: &usize, all: bool, conn: &mut PooledConn) {
}
pub fn get_filter_configs(filter_id: &usize, conn: &mut PooledConn) {
let result = filter_repo::find_filter_configs(filter_id, conn);
let repo: FilterRepo = FilterRepo::new(conn);
let result = repo.find_filter_configs(filter_id);
match result {
Ok(filter_configs) => {