From 74a00769aa6aa348fb8baaa40dfa063a7fb26901 Mon Sep 17 00:00:00 2001 From: Ethan O'Brien Date: Sun, 30 Nov 2025 10:59:07 -0600 Subject: [PATCH] Move sql get_live_data function to clear_rate.rs --- src/router/clear_rate.rs | 23 +++++++++++++++++++++++ src/sql.rs | 24 ++++-------------------- 2 files changed, 27 insertions(+), 20 deletions(-) diff --git a/src/router/clear_rate.rs b/src/router/clear_rate.rs index fcd8c27..3990cbd 100644 --- a/src/router/clear_rate.rs +++ b/src/router/clear_rate.rs @@ -8,6 +8,29 @@ use crate::encryption; use crate::sql::SQLite; use crate::router::{global, databases}; +trait SqlClearRate { + fn get_live_data(&self, id: i64) -> Result; +} +impl SqlClearRate for SQLite { + fn get_live_data(&self, id: i64) -> Result { + let conn = rusqlite::Connection::open(self.get_path()).unwrap(); + let mut stmt = conn.prepare("SELECT * FROM lives WHERE live_id=?1")?; + stmt.query_row(params!(id), |row| { + Ok(Live { + live_id: row.get(0)?, + normal_failed: row.get(1)?, + normal_pass: row.get(2)?, + hard_failed: row.get(3)?, + hard_pass: row.get(4)?, + expert_failed: row.get(5)?, + expert_pass: row.get(6)?, + master_failed: row.get(7)?, + master_pass: row.get(8)?, + }) + }) + } +} + lazy_static! { static ref DATABASE: SQLite = SQLite::new("live_statistics.db", setup_tables); static ref CACHED_DATA: Mutex> = Mutex::new(None); diff --git a/src/sql.rs b/src/sql.rs index ab02081..70e4a99 100644 --- a/src/sql.rs +++ b/src/sql.rs @@ -1,8 +1,6 @@ -use rusqlite::{Connection, params, ToSql}; +use rusqlite::{Connection, ToSql}; use json::{JsonValue, array}; -use crate::router::clear_rate::Live; - pub struct SQLite { path: String } @@ -18,6 +16,9 @@ impl SQLite { setup(&conn); instance } + pub fn get_path(&self) -> &str { + &self.path + } pub fn lock_and_exec(&self, command: &str, args: &[&dyn ToSql]) { let conn = Connection::open(&self.path).unwrap(); conn.execute(command, args).unwrap(); @@ -51,21 +52,4 @@ impl SQLite { } Ok(rv) } - pub fn get_live_data(&self, id: i64) -> Result { - let conn = Connection::open(&self.path).unwrap(); - let mut stmt = conn.prepare("SELECT * FROM lives WHERE live_id=?1")?; - stmt.query_row(params!(id), |row| { - Ok(Live { - live_id: row.get(0)?, - normal_failed: row.get(1)?, - normal_pass: row.get(2)?, - hard_failed: row.get(3)?, - hard_pass: row.get(4)?, - expert_failed: row.get(5)?, - expert_pass: row.get(6)?, - master_failed: row.get(7)?, - master_pass: row.get(8)?, - }) - }) - } }