Added events module

This commit is contained in:
rzuasti
2026-01-21 11:09:58 -05:00
parent f094ecd1ff
commit 5fbd63df5f
2 changed files with 28 additions and 5 deletions
+21
View File
@@ -0,0 +1,21 @@
use crate::device_finders::Device;
use log::info;
pub fn trigger_new_device(device: Device) {
info!("Trigger - New device found: {}.", device);
}
pub fn trigger_existing_device(existing_device: Device, new_device: Device) {
if existing_device.ipv4_address != new_device.ipv4_address {
info!(
"Trigger - Device with MAC {} changed IPv4 address from {} to {}.",
existing_device.mac_address, existing_device.ipv4_address, new_device.ipv4_address
);
}
if existing_device.vendor != new_device.vendor {
info!(
"Trigger - Device with MAC {} changed vendor from {} to {}.",
existing_device.mac_address, existing_device.vendor, new_device.vendor
);
}
}
+7 -5
View File
@@ -4,6 +4,7 @@ use std::sync::{Arc, Mutex};
mod config;
mod db;
mod device_finders;
mod events;
mod mac_vendor_finder;
#[tokio::main]
@@ -35,21 +36,22 @@ async fn main() -> Result<(), String> {
match recorded_device_result {
Some(recorded_device) => {
// If it exists update its last seen date
info!(
debug!(
"Device found in database {}. Updating to {}.",
recorded_device, device
);
// TODO: If IPv4 or vendor changed do something
db::devices::update(db_conn_clone.lock().unwrap(), device.clone());
db::devices::update(db_conn_clone.lock().unwrap(), device.clone())?;
events::trigger_existing_device(recorded_device, device.clone());
}
None => {
// If it doesn't exist insert it
info!(
debug!(
"Device with MAC address {} not found in database. Inserting it.",
device.mac_address
);
db::devices::insert(db_conn_clone.lock().unwrap(), device.clone());
db::devices::insert(db_conn_clone.lock().unwrap(), device.clone())?;
events::trigger_new_device(device.clone());
}
};
}