use discord_client::DiscordNotifier; use dotenvy::dotenv; use system_monitor::SystemMonitor; use crate::{actors, adapters, app}; pub fn get_run_service() -> app::service::Service { dotenv().ok(); let notifier = DiscordNotifier::new( std::env::var("DISCORD_WEBHOOK").expect("DISCORD_WEBHOOK environment variable not set"), "System Monitor".to_string(), "https://cdn.shopify.com/s/files/1/0262/1423/6212/files/Lord_of_the_Rings_eye_of_Sauron_-_Ghtic.com_-_Blog.png?v=1579680018".to_string(), ); let discord_adapter = adapters::driven::for_sending_notification::discord_client::DiscordAdapter::new(notifier); let monitor = SystemMonitor::new(system_monitor::resource_threshold::get_default_resource_thresholds()); let system_monitor_adapter = adapters::driven::for_monitoring_system::system_monitor::SystemMonitorAdapter::new(monitor); let formatter = actors::driven::for_formatting_message::alert_formatter::AlertFormatter; app::service::new( Box::new(discord_adapter), Box::new(system_monitor_adapter), Box::new(formatter), ) } pub fn get_get_service() -> app::service::Service { let notifier = actors::driven::for_sending_notification::print::StdoutNotificationActor::new(); let monitor = SystemMonitor::new(system_monitor::resource_threshold::get_default_resource_thresholds()); let system_monitor_adapter = adapters::driven::for_monitoring_system::system_monitor::SystemMonitorAdapter::new(monitor); let formatter = actors::driven::for_formatting_message::alert_formatter::AlertFormatter; app::service::new( Box::new(notifier), Box::new(system_monitor_adapter), Box::new(formatter), ) }