v0.12.0-preety_code
This commit is contained in:
+18
-7
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user