added container

main
Mathias Rothenhaeusler 2023-04-19 20:02:19 +02:00
parent e32e96cb38
commit d10ee06782
4 changed files with 75 additions and 56 deletions

10
src/container.rs 100644
View File

@ -0,0 +1,10 @@
use mysql::PooledConn;
use crate::{
repository::filter_repo::FilterRepo, service::filter_service::FilterService,
};
pub fn get_filter_service(pool: &mut PooledConn) -> FilterService {
let repo = FilterRepo::new(pool);
return FilterService::new(repo);
}

View File

@ -2,13 +2,14 @@ use clap::Parser;
use cli::cli::{Cli, Commands}; use cli::cli::{Cli, Commands};
use database::db::Db; use database::db::Db;
use mysql::PooledConn; use mysql::PooledConn;
use service::{merchant_service, schema_service, filter_service}; use service::{merchant_service, schema_service, filter_service::FilterService};
pub mod cli; pub mod cli;
pub mod database; pub mod database;
pub mod entity; pub mod entity;
pub mod repository; pub mod repository;
pub mod service; pub mod service;
pub mod container;
fn main() -> std::result::Result<(), Box<dyn std::error::Error>> { fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
let args = Cli::parse(); let args = Cli::parse();
@ -23,10 +24,11 @@ fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
schema_service::get_columns(&search.unwrap(), &mut conn) schema_service::get_columns(&search.unwrap(), &mut conn)
}, },
Commands::Filter { filter_id, config, all } => { Commands::Filter { filter_id, config, all } => {
let mut filter_service: FilterService = container::get_filter_service(&mut conn);
if config { if config {
filter_service::get_filter_configs(&filter_id, &mut conn) filter_service.get_filter_configs(&filter_id)
} else { } else {
filter_service::get_filter(&filter_id, all, &mut conn) filter_service.get_filter(&filter_id, all)
} }
}, },
} }

View File

@ -13,7 +13,7 @@ impl<'a> FilterRepo<'a> {
} }
pub fn find_by_id( pub fn find_by_id(
self, &mut self,
filter_id: &usize, filter_id: &usize,
) -> Result<Vec<Filter>, mysql::Error> { ) -> Result<Vec<Filter>, mysql::Error> {
let stat = self.db_pool let stat = self.db_pool
@ -39,7 +39,7 @@ impl<'a> FilterRepo<'a> {
} }
pub fn find_filter_configs( pub fn find_filter_configs(
self, &mut self,
filter_id: &usize, filter_id: &usize,
) -> Result<Vec<FilterConfig>, mysql::Error> { ) -> Result<Vec<FilterConfig>, mysql::Error> {
let stat = self.db_pool let stat = self.db_pool

View File

@ -2,62 +2,69 @@ use crate::{
entity::{filter::Filter, filter_config::FilterConfig}, entity::{filter::Filter, filter_config::FilterConfig},
repository::filter_repo::FilterRepo, repository::filter_repo::FilterRepo,
}; };
use mysql::PooledConn;
pub fn get_filter(filter_id: &usize, all: bool, conn: &mut PooledConn) { pub struct FilterService<'a> {
let repo: FilterRepo = FilterRepo::new(conn); repo: FilterRepo<'a>,
let result = repo.find_by_id(filter_id); }
match result { impl<'a> FilterService<'a> {
Ok(filters) => { pub fn new(repo: FilterRepo<'a>) -> Self {
if filters.is_empty() { Self { repo }
println!("Filter not found!"); }
} else {
filters.into_iter().for_each(|filter: Filter| {
println!("{}", "-".repeat(150));
println!("Module ID: {}", filter.filter_module_id);
println!("FileName: {}", filter.file_name);
println!("Description: {}", filter.description);
println!("ModuleNo: {}", filter.filter_module_no);
println!("FilterUser: {}", filter.filter_user);
});
if all { pub fn get_filter(&mut self, filter_id: &usize, all: bool) {
get_filter_configs(filter_id, conn) let result = self.repo.find_by_id(filter_id);
match result {
Ok(filters) => {
if filters.is_empty() {
println!("Filter not found!");
} else { } else {
filters.into_iter().for_each(|filter: Filter| {
println!("{}", "-".repeat(150));
println!("Module ID: {}", filter.filter_module_id);
println!("FileName: {}", filter.file_name);
println!("Description: {}", filter.description);
println!("ModuleNo: {}", filter.filter_module_no);
println!("FilterUser: {}", filter.filter_user);
});
if all {
self.get_filter_configs(filter_id)
} else {
println!("{}", "-".repeat(150));
}
}
}
Err(err) => panic!("{}", err),
};
}
pub fn get_filter_configs(&mut self, filter_id: &usize) {
let result = self.repo.find_filter_configs(filter_id);
match result {
Ok(filter_configs) => {
if filter_configs.is_empty() {
println!("No filter configs found!");
} else {
println!("{}", "-".repeat(150));
filter_configs
.into_iter()
.for_each(|filter_config: FilterConfig| {
println!(
"{0: <25} | {1: <20} | {2: <20} | {3: <10} | {4: <10}",
filter_config.attribute,
filter_config.value1,
filter_config.value2.unwrap_or("n/a".to_string()),
filter_config.upd_ts,
filter_config.name
);
});
println!("{}", "-".repeat(150)); println!("{}", "-".repeat(150));
} }
} }
} Err(err) => panic!("{}", err),
Err(err) => panic!("{}", err), };
}; }
}
pub fn get_filter_configs(filter_id: &usize, conn: &mut PooledConn) {
let repo: FilterRepo = FilterRepo::new(conn);
let result = repo.find_filter_configs(filter_id);
match result {
Ok(filter_configs) => {
if filter_configs.is_empty() {
println!("No filter configs found!");
} else {
println!("{}", "-".repeat(150));
filter_configs
.into_iter()
.for_each(|filter_config: FilterConfig| {
println!(
"{0: <25} | {1: <20} | {2: <20} | {3: <10} | {4: <10}",
filter_config.attribute,
filter_config.value1,
filter_config.value2.unwrap_or("n/a".to_string()),
filter_config.upd_ts,
filter_config.name
);
});
println!("{}", "-".repeat(150));
}
}
Err(err) => panic!("{}", err),
};
} }