From 94d05155fbf7d9342042f6b14bc227f9438d52a7 Mon Sep 17 00:00:00 2001 From: mace Date: Fri, 25 Aug 2023 15:44:38 +0200 Subject: [PATCH] added controller --- src/cli/controller.rs | 51 +++++++++++++++++++++++++++++++++++++++++++ src/cli/mod.rs | 1 + src/main.rs | 51 +++++-------------------------------------- 3 files changed, 57 insertions(+), 46 deletions(-) create mode 100644 src/cli/controller.rs diff --git a/src/cli/controller.rs b/src/cli/controller.rs new file mode 100644 index 0000000..bf4877e --- /dev/null +++ b/src/cli/controller.rs @@ -0,0 +1,51 @@ +use mysql::PooledConn; + +use crate::{ + container, + service::{ + file_service::FileService, filter_service::FilterService, job_service::JobService, + merchant_service::MerchantService, schema_service::SchemaService, + }, +}; + +use super::command::{Cli, Commands}; + +pub fn process_args(args: Cli, conn: &mut PooledConn) { + match args.mode { + Commands::Merch { search } => { + let mut merchant_service: MerchantService = container::get_merchant_service(conn); + merchant_service.get_merchant(&search.unwrap()); + } + Commands::Schema { search } => { + let mut schema_service: SchemaService = container::get_schema_service(conn); + schema_service.get_columns(&search.unwrap()) + } + Commands::Filter { + filter_id, + config, + all, + log, + } => { + let mut filter_service: FilterService = container::get_filter_service(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(conn); + file_service.get_page(&page_id); + } + Commands::Job { job_id, log } => { + let mut job_service: JobService = container::get_job_service(conn); + if log { + job_service.get_job_log(&job_id); + } else { + job_service.get_job_by_id(&job_id); + } + } + } +} diff --git a/src/cli/mod.rs b/src/cli/mod.rs index 9fe7961..85f22a7 100644 --- a/src/cli/mod.rs +++ b/src/cli/mod.rs @@ -1 +1,2 @@ pub mod command; +pub mod controller; diff --git a/src/main.rs b/src/main.rs index c786b22..6867350 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,11 +1,7 @@ use clap::Parser; -use cli::command::{Cli, Commands}; +use cli::{command::Cli, controller}; use database::db::Db; use mysql::PooledConn; -use service::{ - file_service::FileService, filter_service::FilterService, job_service::JobService, - merchant_service::MerchantService, schema_service::SchemaService, -}; pub mod cli; pub mod container; @@ -15,50 +11,13 @@ pub mod repository; pub mod service; fn main() -> std::result::Result<(), Box> { - let args = Cli::parse(); - let env = args.env.unwrap_or("local".to_string()); - let db = Db::initialize(env); + let args: Cli = Cli::parse(); + let env: &String = &Cli::parse().env.unwrap_or("local".to_string()); + let db: Db = Db::initialize(env.to_string()); let conn_res: Result = db.get_connection(); match conn_res { - Ok(mut conn) => match args.mode { - Commands::Merch { search } => { - let mut merchant_service: MerchantService = - container::get_merchant_service(&mut conn); - merchant_service.get_merchant(&search.unwrap()); - } - Commands::Schema { search } => { - 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::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); - } - } - }, + Ok(mut conn) => controller::process_args(args, &mut conn), Err(e) => { println!("Error connecting DB: {e}"); }