v0.12.0-preety_code

This commit is contained in:
Mateusz Gruszczyński
2026-09-03 15:33:37 +02:00
parent be67932b47
commit 07be4b85d9
87 changed files with 11691 additions and 3172 deletions
+18 -7
View File
@@ -48,7 +48,6 @@ impl Db {
pub fn delete_group(&self, id: &str) -> Result<bool> {
self.delete_by_id("groups", id)
}
}
impl Db {
@@ -62,8 +61,12 @@ impl Db {
mode_changed: bool,
at: DateTime<Utc>,
) -> Result<Vec<Zone>> {
if !power_changed && !mode_changed { return Ok(Vec::new()); }
let zone_ids: Vec<String> = self.list_zones()?.into_iter()
if !power_changed && !mode_changed {
return Ok(Vec::new());
}
let zone_ids: Vec<String> = self
.list_zones()?
.into_iter()
.filter(|zone| zone.device_id == device_id)
.map(|zone| zone.id)
.collect();
@@ -71,10 +74,16 @@ impl Db {
for zone_id in zone_ids {
let mut saved = false;
for _ in 0..8 {
let Some(mut zone) = self.get_zone(&zone_id)? else { break; };
let Some(mut zone) = self.get_zone(&zone_id)? else {
break;
};
let expected_updated_at = zone.updated_at.to_rfc3339();
if power_changed { zone.last_power_change_at = Some(at); }
if mode_changed { zone.last_mode_change_at = Some(at); }
if power_changed {
zone.last_power_change_at = Some(at);
}
if mode_changed {
zone.last_mode_change_at = Some(at);
}
let payload = Self::to_json(&zone)?;
let conn = self.lock()?;
let changed = conn.execute(
@@ -89,7 +98,9 @@ impl Db {
}
}
if !saved && self.get_zone(&zone_id)?.is_some() {
return Err(anyhow::anyhow!("zone {zone_id} kept changing while device transition timestamps were merged"));
return Err(anyhow::anyhow!(
"zone {zone_id} kept changing while device transition timestamps were merged"
));
}
}
Ok(updated)