first process
parent
9f2def2892
commit
20c183b163
|
@ -1238,6 +1238,7 @@ dependencies = [
|
|||
"clap",
|
||||
"directories",
|
||||
"dotenv",
|
||||
"log",
|
||||
"mysql",
|
||||
"sprintf",
|
||||
]
|
||||
|
|
|
@ -9,5 +9,6 @@ edition = "2021"
|
|||
clap = { version = "4.2.1", features = ["derive"] }
|
||||
directories = "5.0.0"
|
||||
dotenv = "0.15.0"
|
||||
log = "0.4.17"
|
||||
mysql = "23.0.1"
|
||||
sprintf = "0.1.3"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
use clap::Parser;
|
||||
use clap::{Parser, Subcommand};
|
||||
|
||||
#[derive(Parser)]
|
||||
#[command(name = "RCC")]
|
||||
|
@ -6,9 +6,18 @@ use clap::Parser;
|
|||
#[command(version = "1.0")]
|
||||
#[command(about = "Tool collection for work at RCC.", long_about = None)]
|
||||
pub struct Cli {
|
||||
#[arg(short, long)]
|
||||
env: String,
|
||||
#[arg(short, long)]
|
||||
one: String,
|
||||
#[arg(short = 'e', long = "env")]
|
||||
pub env: Option<String>,
|
||||
#[arg(short = 't', long = "target")]
|
||||
pub target: Option<String>,
|
||||
#[command(subcommand)]
|
||||
pub mode: Commands,
|
||||
}
|
||||
|
||||
#[derive(Subcommand)]
|
||||
pub enum Commands {
|
||||
Merch {
|
||||
#[arg(short = 's', long = "search")]
|
||||
search: Option<String>,
|
||||
},
|
||||
}
|
||||
|
|
21
src/main.rs
21
src/main.rs
|
@ -1,27 +1,28 @@
|
|||
use clap::Parser;
|
||||
use cli::cli::{Cli, Commands};
|
||||
use database::database::Db;
|
||||
use mysql::PooledConn;
|
||||
use repository::merchant_repo;
|
||||
|
||||
pub mod cli;
|
||||
pub mod database;
|
||||
pub mod entity;
|
||||
pub mod repository;
|
||||
pub mod cli;
|
||||
|
||||
#[derive(Debug, PartialEq, Eq)]
|
||||
struct Payment {
|
||||
customer_id: i32,
|
||||
amount: i32,
|
||||
account_name: Option<String>,
|
||||
}
|
||||
|
||||
fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
|
||||
let args = Cli::parse();
|
||||
let db = Db::initialize();
|
||||
|
||||
let mut conn: PooledConn = db.get_connection();
|
||||
let selected_payments = merchant_repo::find_by_name_or_id("1", &mut conn);
|
||||
|
||||
match args.mode {
|
||||
Commands::Merch { search } => {
|
||||
let selected_payments = merchant_repo::find_by_name_or_id(&search.unwrap(), &mut conn);
|
||||
|
||||
selected_payments.into_iter().for_each(|payment| {
|
||||
println!("{:?}", payment);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
|
|
@ -7,10 +7,14 @@ pub fn find_by_name_or_id(
|
|||
conn: &mut PooledConn,
|
||||
) -> Result<Vec<Merchant>, mysql::Error> {
|
||||
let stat = conn
|
||||
.prep("SELECT m_name, m_id FROM global_data.merchant WHERE m_id = :search OR m_name LIKE :search;")
|
||||
.prep("SELECT m_name, m_id FROM global_data.merchant WHERE m_id = :search OR m_name LIKE :search2;")
|
||||
.unwrap();
|
||||
|
||||
conn.exec_map(stat, params! {"search" => search}, |(m_name, m_id)| {
|
||||
Merchant { m_name, m_id }
|
||||
})
|
||||
let search_like = format!("%{}%", search);
|
||||
|
||||
conn.exec_map(
|
||||
stat,
|
||||
params! {"search" => search, "search2" => search_like},
|
||||
|(m_name, m_id)| Merchant { m_name, m_id },
|
||||
)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue