added controller

main
Mathias Rothenhaeusler 2023-08-25 15:44:38 +02:00
parent 661856a271
commit 94d05155fb
3 changed files with 57 additions and 46 deletions

View File

@ -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);
}
}
}
}

View File

@ -1 +1,2 @@
pub mod command; pub mod command;
pub mod controller;

View File

@ -1,11 +1,7 @@
use clap::Parser; use clap::Parser;
use cli::command::{Cli, Commands}; use cli::{command::Cli, controller};
use database::db::Db; use database::db::Db;
use mysql::PooledConn; 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 cli;
pub mod container; pub mod container;
@ -15,50 +11,13 @@ pub mod repository;
pub mod service; pub mod service;
fn main() -> std::result::Result<(), Box<dyn std::error::Error>> { fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
let args = Cli::parse(); let args: Cli = Cli::parse();
let env = args.env.unwrap_or("local".to_string()); let env: &String = &Cli::parse().env.unwrap_or("local".to_string());
let db = Db::initialize(env); let db: Db = Db::initialize(env.to_string());
let conn_res: Result<PooledConn, mysql::Error> = db.get_connection(); let conn_res: Result<PooledConn, mysql::Error> = db.get_connection();
match conn_res { match conn_res {
Ok(mut conn) => match args.mode { Ok(mut conn) => controller::process_args(args, &mut conn),
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);
}
}
},
Err(e) => { Err(e) => {
println!("Error connecting DB: {e}"); println!("Error connecting DB: {e}");
} }