From 5bf13b171b188f8f3eb672e655269ab5f49ec6c2 Mon Sep 17 00:00:00 2001 From: Alexey Velikiy Date: Thu, 23 Dec 2021 12:53:46 +0300 Subject: [PATCH] get_active_config++ --- server/src/services/analytic_unit_service.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/server/src/services/analytic_unit_service.rs b/server/src/services/analytic_unit_service.rs index e7f3543..8f5a5c0 100644 --- a/server/src/services/analytic_unit_service.rs +++ b/server/src/services/analytic_unit_service.rs @@ -101,16 +101,23 @@ impl AnalyticUnitService { } pub fn get_active_config(&self) -> anyhow::Result { - let conn = self.connection.lock().unwrap(); - let mut stmt = conn.prepare( - "SELECT config from analytic_unit WHERE active = TRUE" - )?; + let exists = { + let conn = self.connection.lock().unwrap(); + let mut stmt = conn.prepare( + "SELECT config from analytic_unit WHERE active = TRUE" + )?; + stmt.exists([])? + }; - if stmt.exists([])? == false { + if exists == false { let c = AnalyticUnitConfig::Pattern(Default::default()); self.resolve(&c)?; return Ok(c); } else { + let conn = self.connection.lock().unwrap(); + let mut stmt = conn.prepare( + "SELECT config from analytic_unit WHERE active = TRUE" + )?; let acfg = stmt.query_row([], |row| { let c: String = row.get(0)?; let cfg = serde_json::from_str(&c).unwrap();