refactor(app): implement ports & adapters

* also move alertFormatter into internal actor
This commit is contained in:
2025-08-09 17:53:01 +02:00
parent 985ee54669
commit f53aef1821
13 changed files with 223 additions and 69 deletions

View File

@@ -3,9 +3,26 @@ use dotenvy::dotenv;
use system_monitor::SystemMonitor;
mod app {
pub mod ports;
pub mod service;
}
mod adapters {
pub mod driven {
pub mod for_getting_violation_data;
pub mod for_monitoring_system;
pub mod for_sending_notification;
}
}
mod actors {
pub mod driven {
pub mod for_formatting_message {
pub mod alert_formatter;
}
}
}
fn main() {
dotenv().ok();
@@ -14,12 +31,19 @@ fn main() {
"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 monitor =
SystemMonitor::new(system_monitor::resource_threshold::get_default_resource_thresholds());
let formatter = system_monitor::alert_formatter::AlertFormatter;
let discord_adapter =
adapters::driven::for_sending_notification::discord_client::DiscordAdapter::new(notifier);
let system_monitor_adapter =
adapters::driven::for_monitoring_system::system_monitor::SystemMonitorAdapter::new(monitor);
let formatter = actors::driven::for_formatting_message::alert_formatter::AlertFormatter;
let service = app::service::new(notifier, monitor, formatter);
let service = app::service::new(
Box::new(discord_adapter),
Box::new(system_monitor_adapter),
Box::new(formatter),
);
service.run();
}