From b1995ead8644962e5a7ad767b2122224e5a3dea0 Mon Sep 17 00:00:00 2001 From: Mike Dilger Date: Tue, 27 Dec 2022 19:24:26 +1300 Subject: [PATCH] Strip out dead setting handling code, we use the Setting object now --- src/db/setting.rs | 135 -------------------------------------------- src/globals.rs | 4 -- src/overlord/mod.rs | 15 +---- 3 files changed, 1 insertion(+), 153 deletions(-) diff --git a/src/db/setting.rs b/src/db/setting.rs index 3a5411c7..c0ef1838 100644 --- a/src/db/setting.rs +++ b/src/db/setting.rs @@ -1,142 +1,7 @@ -use crate::error::Error; -use crate::globals::GLOBALS; -use rusqlite::ToSql; use serde::{Deserialize, Serialize}; -use tokio::task::spawn_blocking; #[derive(Debug, Serialize, Deserialize)] pub struct DbSetting { pub key: String, pub value: String, } - -impl DbSetting { - pub async fn fetch(criteria: Option<&str>) -> Result, Error> { - let sql = "SELECT key, value FROM settings".to_owned(); - let sql = match criteria { - None => sql, - Some(crit) => format!("{} WHERE {}", sql, crit), - }; - - let output: Result, Error> = spawn_blocking(move || { - let maybe_db = GLOBALS.db.blocking_lock(); - let db = maybe_db.as_ref().unwrap(); - - let mut stmt = db.prepare(&sql)?; - let rows = stmt.query_map([], |row| { - Ok(DbSetting { - key: row.get(0)?, - value: row.get(1)?, - }) - })?; - - let mut output: Vec = Vec::new(); - for row in rows { - output.push(row?); - } - Ok(output) - }) - .await?; - - output - } - - pub async fn fetch_setting(key: &str) -> Result, Error> { - let db_settings = DbSetting::fetch(Some(&format!("key='{}'", key))).await?; - - if db_settings.is_empty() { - Ok(None) - } else { - Ok(Some(db_settings[0].value.clone())) - } - } - - #[allow(dead_code)] - pub async fn fetch_setting_or_default(key: &str, default: &str) -> Result { - let db_settings = DbSetting::fetch(Some(&format!("key='{}'", key))).await?; - - if db_settings.is_empty() { - Ok(default.to_string()) - } else { - Ok(db_settings[0].value.clone()) - } - } - - #[allow(dead_code)] - pub async fn fetch_setting_u64_or_default(key: &str, default: u64) -> Result { - let db_settings = DbSetting::fetch(Some(&format!("key='{}'", key))).await?; - - if db_settings.is_empty() { - Ok(default) - } else { - Ok(db_settings[0].value.parse::().unwrap_or(default)) - } - } - - #[allow(dead_code)] - pub async fn set(setting: DbSetting) -> Result<(), Error> { - let sql = "INSERT OR REPLACE INTO settings (key, value) VALUES (?1, ?2)"; - - spawn_blocking(move || { - let maybe_db = GLOBALS.db.blocking_lock(); - let db = maybe_db.as_ref().unwrap(); - - let mut stmt = db.prepare(sql)?; - stmt.execute((&setting.key, &setting.value))?; - Ok::<(), Error>(()) - }) - .await??; - - Ok(()) - } - - #[allow(dead_code)] - pub async fn insert(setting: DbSetting) -> Result<(), Error> { - let sql = "INSERT OR IGNORE INTO settings (key, value) \ - VALUES (?1, ?2)"; - - spawn_blocking(move || { - let maybe_db = GLOBALS.db.blocking_lock(); - let db = maybe_db.as_ref().unwrap(); - - let mut stmt = db.prepare(sql)?; - stmt.execute((&setting.key, &setting.value))?; - Ok::<(), Error>(()) - }) - .await??; - - Ok(()) - } - - #[allow(dead_code)] - pub async fn update(key: String, value: T) -> Result<(), Error> { - let sql = "UPDATE settings SET value=? WHERE key=?"; - - spawn_blocking(move || { - let maybe_db = GLOBALS.db.blocking_lock(); - let db = maybe_db.as_ref().unwrap(); - - let mut stmt = db.prepare(sql)?; - stmt.execute((&value, &key))?; - Ok::<(), Error>(()) - }) - .await??; - - Ok(()) - } - - #[allow(dead_code)] - pub async fn delete(criteria: &str) -> Result<(), Error> { - let sql = format!("DELETE FROM settings WHERE {}", criteria); - - spawn_blocking(move || { - let maybe_db = GLOBALS.db.blocking_lock(); - let db = maybe_db.as_ref().unwrap(); - db.execute(&sql, [])?; - Ok::<(), Error>(()) - }) - .await??; - - Ok(()) - } -} diff --git a/src/globals.rs b/src/globals.rs index e8c43cbc..d5d76b85 100644 --- a/src/globals.rs +++ b/src/globals.rs @@ -49,9 +49,6 @@ pub struct Globals { /// All nostr relay records we have pub relays: Mutex>, - /// Whether or not we have a saved private key and need the password to unlock it - pub need_password: AtomicBool, - /// Whether or not we are shutting down. For the UI (minions will be signaled and /// waited for by the overlord) pub shutting_down: AtomicBool, @@ -80,7 +77,6 @@ lazy_static! { desired_events: Mutex::new(HashMap::new()), people: Mutex::new(HashMap::new()), relays: Mutex::new(HashMap::new()), - need_password: AtomicBool::new(false), shutting_down: AtomicBool::new(false), settings: Mutex::new(Settings::default()), } diff --git a/src/overlord/mod.rs b/src/overlord/mod.rs index ad5d0fbf..d6b08d3f 100644 --- a/src/overlord/mod.rs +++ b/src/overlord/mod.rs @@ -2,7 +2,7 @@ mod minion; mod relay_picker; use crate::comms::BusMessage; -use crate::db::{DbEvent, DbPerson, DbPersonRelay, DbRelay, DbSetting}; +use crate::db::{DbEvent, DbPerson, DbPersonRelay, DbRelay}; use crate::error::Error; use crate::globals::{Globals, GLOBALS}; use crate::settings::Settings; @@ -80,19 +80,6 @@ impl Overlord { } pub async fn run_inner(&mut self) -> Result<(), Error> { - // Check for a private key - if DbSetting::fetch_setting("user_private_key") - .await? - .is_some() - { - // We don't bother loading the value just yet because we don't have - // the password. - info!("Saved private key found. Will need a password to unlock."); - GLOBALS - .need_password - .store(true, std::sync::atomic::Ordering::Relaxed); - } - // FIXME - if this needs doing, it should be done dynamically as // new people are encountered, not batch-style on startup. // Create a person record for every person seen, possibly autofollow