error handling improved
parent
5f840f2235
commit
661856a271
|
@ -1280,7 +1280,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rcc"
|
name = "rcc"
|
||||||
version = "0.1.0"
|
version = "1.0.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"clap",
|
"clap",
|
||||||
"colored",
|
"colored",
|
||||||
|
|
|
@ -36,7 +36,7 @@ impl Db {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_connection(&self) -> PooledConn {
|
pub fn get_connection(&self) -> Result<PooledConn, mysql::Error> {
|
||||||
let url = sprintf!(
|
let url = sprintf!(
|
||||||
"mysql://%s:%s@%s:%s/%s",
|
"mysql://%s:%s@%s:%s/%s",
|
||||||
self.user,
|
self.user,
|
||||||
|
@ -48,12 +48,9 @@ impl Db {
|
||||||
|
|
||||||
let pool = match Pool::new(Opts::from_url(&url).unwrap()) {
|
let pool = match Pool::new(Opts::from_url(&url).unwrap()) {
|
||||||
Ok(p) => p,
|
Ok(p) => p,
|
||||||
Err(e) => panic!("Cannot initialize pool: {e}"),
|
Err(e) => return Err(e),
|
||||||
};
|
|
||||||
let conn: PooledConn = match pool.get_conn() {
|
|
||||||
Ok(db) => db,
|
|
||||||
Err(e) => panic!("Cannot connect to DB: {e}"),
|
|
||||||
};
|
};
|
||||||
|
let conn: Result<PooledConn, mysql::Error> = pool.get_conn() ;
|
||||||
|
|
||||||
conn
|
conn
|
||||||
}
|
}
|
||||||
|
|
74
src/main.rs
74
src/main.rs
|
@ -18,43 +18,49 @@ fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
|
||||||
let args = Cli::parse();
|
let args = Cli::parse();
|
||||||
let env = args.env.unwrap_or("local".to_string());
|
let env = args.env.unwrap_or("local".to_string());
|
||||||
let db = Db::initialize(env);
|
let db = Db::initialize(env);
|
||||||
let mut conn: PooledConn = db.get_connection();
|
let conn_res: Result<PooledConn, mysql::Error> = db.get_connection();
|
||||||
|
|
||||||
match args.mode {
|
match conn_res {
|
||||||
Commands::Merch { search } => {
|
Ok(mut conn) => match args.mode {
|
||||||
let mut merchant_service: MerchantService = container::get_merchant_service(&mut conn);
|
Commands::Merch { search } => {
|
||||||
merchant_service.get_merchant(&search.unwrap());
|
let mut merchant_service: MerchantService =
|
||||||
}
|
container::get_merchant_service(&mut conn);
|
||||||
Commands::Schema { search } => {
|
merchant_service.get_merchant(&search.unwrap());
|
||||||
let mut schema_service: SchemaService = container::get_schema_service(&mut conn);
|
|
||||||
schema_service.get_columns(&search.unwrap())
|
|
||||||
}
|
|
||||||
Commands::Filter {
|
|
||||||
filter_id,
|
|
||||||
config,
|
|
||||||
all,
|
|
||||||
log,
|
|
||||||
} => {
|
|
||||||
let mut filter_service: FilterService = container::get_filter_service(&mut conn);
|
|
||||||
if config {
|
|
||||||
filter_service.get_filter_configs(&filter_id)
|
|
||||||
} else if log {
|
|
||||||
filter_service.get_filter_log(&filter_id)
|
|
||||||
} else {
|
|
||||||
filter_service.get_filter(&filter_id, all)
|
|
||||||
}
|
}
|
||||||
}
|
Commands::Schema { search } => {
|
||||||
Commands::Page { page_id } => {
|
let mut schema_service: SchemaService = container::get_schema_service(&mut conn);
|
||||||
let mut file_service: FileService = container::get_page_service(&mut conn);
|
schema_service.get_columns(&search.unwrap())
|
||||||
file_service.get_page(&page_id);
|
|
||||||
}
|
|
||||||
Commands::Job { job_id, log } => {
|
|
||||||
let mut job_service: JobService = container::get_job_service(&mut conn);
|
|
||||||
if log {
|
|
||||||
job_service.get_job_log(&job_id);
|
|
||||||
} else {
|
|
||||||
job_service.get_job_by_id(&job_id);
|
|
||||||
}
|
}
|
||||||
|
Commands::Filter {
|
||||||
|
filter_id,
|
||||||
|
config,
|
||||||
|
all,
|
||||||
|
log,
|
||||||
|
} => {
|
||||||
|
let mut filter_service: FilterService = container::get_filter_service(&mut conn);
|
||||||
|
if config {
|
||||||
|
filter_service.get_filter_configs(&filter_id)
|
||||||
|
} else if log {
|
||||||
|
filter_service.get_filter_log(&filter_id)
|
||||||
|
} else {
|
||||||
|
filter_service.get_filter(&filter_id, all)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Commands::Page { page_id } => {
|
||||||
|
let mut file_service: FileService = container::get_page_service(&mut conn);
|
||||||
|
file_service.get_page(&page_id);
|
||||||
|
}
|
||||||
|
Commands::Job { job_id, log } => {
|
||||||
|
let mut job_service: JobService = container::get_job_service(&mut conn);
|
||||||
|
if log {
|
||||||
|
job_service.get_job_log(&job_id);
|
||||||
|
} else {
|
||||||
|
job_service.get_job_by_id(&job_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Err(e) => {
|
||||||
|
println!("Error connecting DB: {e}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue