added filter repo
parent
178ea238a3
commit
62db608ecb
|
@ -17,11 +17,14 @@ pub struct Cli {
|
|||
#[derive(Subcommand)]
|
||||
pub enum Commands {
|
||||
Merch {
|
||||
#[arg(short = 's', long = "search")]
|
||||
// #[arg(short = 's', long = "search")]
|
||||
search: Option<String>,
|
||||
},
|
||||
Schema {
|
||||
#[arg(short = 's', long = "search")]
|
||||
// #[arg(short = 's', long = "search")]
|
||||
search: Option<String>,
|
||||
},
|
||||
Filter {
|
||||
filter_id: usize
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
#[derive(Debug, PartialEq, Eq)]
|
||||
pub struct Filter {
|
||||
pub filter_module_id: usize,
|
||||
pub file_name: String,
|
||||
pub description: String,
|
||||
pub filter_module_no: String,
|
||||
pub filter_user: usize,
|
||||
}
|
|
@ -1,2 +1,3 @@
|
|||
pub mod merchant;
|
||||
pub mod schema;
|
||||
pub mod filter;
|
||||
|
|
|
@ -2,7 +2,7 @@ use clap::Parser;
|
|||
use cli::cli::{Cli, Commands};
|
||||
use database::database::Db;
|
||||
use mysql::PooledConn;
|
||||
use service::{merchant_service, schema_service};
|
||||
use service::{merchant_service, schema_service, filter_service};
|
||||
|
||||
pub mod cli;
|
||||
pub mod database;
|
||||
|
@ -22,6 +22,9 @@ fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
|
|||
Commands::Schema { search } => {
|
||||
schema_service::get_columns(&search.unwrap(), &mut conn)
|
||||
},
|
||||
Commands::Filter { filter_id } => {
|
||||
filter_service::get_filter(&filter_id, &mut conn)
|
||||
},
|
||||
}
|
||||
|
||||
Ok(())
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
use mysql::{params, prelude::Queryable, PooledConn};
|
||||
|
||||
use crate::entity::filter::Filter;
|
||||
|
||||
pub fn find_by_id(filter_id: &usize, conn: &mut PooledConn) -> Result<Vec<Filter>, mysql::Error> {
|
||||
let stat = conn
|
||||
.prep(
|
||||
"SELECT f.filter_module_id, f.file_name, f.description, fm.filter_module_no, fm.filter_user
|
||||
FROM filter f
|
||||
JOIN global_data.filter_modules fm ON fm.filter_module_id = f.filter_module_id
|
||||
WHERE f.filter_id = :filter_id
|
||||
")
|
||||
.unwrap();
|
||||
|
||||
conn.exec_map(
|
||||
stat,
|
||||
params! {"filter_id" => filter_id},
|
||||
|(filter_module_id, file_name, description, filter_module_no, filter_user)| Filter {
|
||||
filter_module_id,
|
||||
file_name,
|
||||
description,
|
||||
filter_module_no,
|
||||
filter_user,
|
||||
},
|
||||
)
|
||||
}
|
|
@ -1,2 +1,3 @@
|
|||
pub mod merchant_repo;
|
||||
pub mod schema_repo;
|
||||
pub mod filter_repo;
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
use mysql::PooledConn;
|
||||
|
||||
use crate::repository::filter_repo;
|
||||
|
||||
pub fn get_filter(filter_id: &usize, conn: &mut PooledConn) {
|
||||
let result = filter_repo::find_by_id(filter_id, conn);
|
||||
|
||||
match result {
|
||||
Ok(filters) => {
|
||||
if filters.is_empty() {
|
||||
println!("Filter not found!");
|
||||
} else {
|
||||
filters.into_iter().for_each(|filter| {
|
||||
println!("{}", "-".repeat(100));
|
||||
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);
|
||||
});
|
||||
println!("{}", "-".repeat(100));
|
||||
}
|
||||
}
|
||||
Err(err) => panic!("{}", err),
|
||||
};
|
||||
}
|
|
@ -1,2 +1,3 @@
|
|||
pub mod merchant_service;
|
||||
pub mod schema_service;
|
||||
pub mod filter_service;
|
||||
|
|
|
@ -2,7 +2,6 @@ use mysql::PooledConn;
|
|||
|
||||
use crate::repository::schema_repo;
|
||||
|
||||
|
||||
pub fn get_columns(column: &str, conn: &mut PooledConn) {
|
||||
let columns = schema_repo::find_by_column(column, conn);
|
||||
|
||||
|
@ -10,14 +9,16 @@ pub fn get_columns(column: &str, conn: &mut PooledConn) {
|
|||
Ok(columns) => {
|
||||
if columns.is_empty() {
|
||||
println!("No column found!");
|
||||
}
|
||||
} else {
|
||||
columns.into_iter().for_each(|column| {
|
||||
println!("{}", "-".repeat(100));
|
||||
println!("Table name: {}", column.table_name);
|
||||
println!("Column name: {}", column.column_name);
|
||||
println!("Type: {}", column.column_type);
|
||||
})
|
||||
},
|
||||
});
|
||||
println!("{}", "-".repeat(100));
|
||||
}
|
||||
}
|
||||
Err(err) => panic!("{err}"),
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue