From aec4fdecc10be35cde5dc42308960f10bc452187 Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Wed, 15 Feb 2023 00:01:44 -0500 Subject: make database calls 1 conn --- src/database/mod.rs | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) (limited to 'src/database/mod.rs') diff --git a/src/database/mod.rs b/src/database/mod.rs index d22a350..67e05c6 100644 --- a/src/database/mod.rs +++ b/src/database/mod.rs @@ -1,3 +1,4 @@ +use rusqlite::Connection; use tracing::instrument; pub mod comments; @@ -7,23 +8,29 @@ pub mod posts; pub mod sessions; pub mod users; -pub fn connect() -> Result { - rusqlite::Connection::open("xssbook.db") +#[derive(Debug)] +pub struct Database(Connection); + +impl Database { + pub fn connect() -> Result { + let conn = rusqlite::Connection::open("xssbook.db")?; + Ok(Self(conn)) + } + + #[instrument(skip(self))] + pub fn query(&self, query: String) -> Result { + tracing::trace!("Running custom query"); + self.0.execute(&query, []) + } } pub fn init() -> Result<(), rusqlite::Error> { - users::init()?; - posts::init()?; - sessions::init()?; - likes::init()?; - comments::init()?; - friends::init()?; + let db = Database::connect()?; + db.init_users()?; + db.init_posts()?; + db.init_sessions()?; + db.init_likes()?; + db.init_comments()?; + db.init_friends()?; Ok(()) } - -#[instrument()] -pub fn query(query: String) -> Result { - tracing::trace!("Running custom query"); - let conn = connect()?; - conn.execute(&query, []) -} -- cgit v1.2.3-freya