added filter repo
parent
178ea238a3
commit
62db608ecb
|
@ -17,11 +17,14 @@ pub struct Cli {
|
||||||
#[derive(Subcommand)]
|
#[derive(Subcommand)]
|
||||||
pub enum Commands {
|
pub enum Commands {
|
||||||
Merch {
|
Merch {
|
||||||
#[arg(short = 's', long = "search")]
|
// #[arg(short = 's', long = "search")]
|
||||||
search: Option<String>,
|
search: Option<String>,
|
||||||
},
|
},
|
||||||
Schema {
|
Schema {
|
||||||
#[arg(short = 's', long = "search")]
|
// #[arg(short = 's', long = "search")]
|
||||||
search: Option<String>,
|
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 merchant;
|
||||||
pub mod schema;
|
pub mod schema;
|
||||||
|
pub mod filter;
|
||||||
|
|
|
@ -2,7 +2,7 @@ use clap::Parser;
|
||||||
use cli::cli::{Cli, Commands};
|
use cli::cli::{Cli, Commands};
|
||||||
use database::database::Db;
|
use database::database::Db;
|
||||||
use mysql::PooledConn;
|
use mysql::PooledConn;
|
||||||
use service::{merchant_service, schema_service};
|
use service::{merchant_service, schema_service, filter_service};
|
||||||
|
|
||||||
pub mod cli;
|
pub mod cli;
|
||||||
pub mod database;
|
pub mod database;
|
||||||
|
@ -22,6 +22,9 @@ fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
|
||||||
Commands::Schema { search } => {
|
Commands::Schema { search } => {
|
||||||
schema_service::get_columns(&search.unwrap(), &mut conn)
|
schema_service::get_columns(&search.unwrap(), &mut conn)
|
||||||
},
|
},
|
||||||
|
Commands::Filter { filter_id } => {
|
||||||
|
filter_service::get_filter(&filter_id, &mut conn)
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
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 merchant_repo;
|
||||||
pub mod schema_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 merchant_service;
|
||||||
pub mod schema_service;
|
pub mod schema_service;
|
||||||
|
pub mod filter_service;
|
||||||
|
|
|
@ -2,7 +2,6 @@ use mysql::PooledConn;
|
||||||
|
|
||||||
use crate::repository::schema_repo;
|
use crate::repository::schema_repo;
|
||||||
|
|
||||||
|
|
||||||
pub fn get_columns(column: &str, conn: &mut PooledConn) {
|
pub fn get_columns(column: &str, conn: &mut PooledConn) {
|
||||||
let columns = schema_repo::find_by_column(column, conn);
|
let columns = schema_repo::find_by_column(column, conn);
|
||||||
|
|
||||||
|
@ -10,14 +9,16 @@ pub fn get_columns(column: &str, conn: &mut PooledConn) {
|
||||||
Ok(columns) => {
|
Ok(columns) => {
|
||||||
if columns.is_empty() {
|
if columns.is_empty() {
|
||||||
println!("No column found!");
|
println!("No column found!");
|
||||||
}
|
} else {
|
||||||
columns.into_iter().for_each(|column| {
|
columns.into_iter().for_each(|column| {
|
||||||
println!("{}", "-".repeat(100));
|
println!("{}", "-".repeat(100));
|
||||||
println!("Table name: {}", column.table_name);
|
println!("Table name: {}", column.table_name);
|
||||||
println!("Column name: {}", column.column_name);
|
println!("Column name: {}", column.column_name);
|
||||||
println!("Type: {}", column.column_type);
|
println!("Type: {}", column.column_type);
|
||||||
})
|
});
|
||||||
},
|
println!("{}", "-".repeat(100));
|
||||||
|
}
|
||||||
|
}
|
||||||
Err(err) => panic!("{err}"),
|
Err(err) => panic!("{err}"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue