summaryrefslogtreecommitdiff
path: root/src/database/mod.rs
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2023-02-15 00:01:44 -0500
committerTyler Murphy <tylermurphy534@gmail.com>2023-02-15 00:01:44 -0500
commitaec4fdecc10be35cde5dc42308960f10bc452187 (patch)
tree67233229c6839c78d1bd3db0147467da30843f44 /src/database/mod.rs
parentbug fixes (diff)
downloadxssbook-aec4fdecc10be35cde5dc42308960f10bc452187.tar.gz
xssbook-aec4fdecc10be35cde5dc42308960f10bc452187.tar.bz2
xssbook-aec4fdecc10be35cde5dc42308960f10bc452187.zip
make database calls 1 conn
Diffstat (limited to 'src/database/mod.rs')
-rw-r--r--src/database/mod.rs37
1 files changed, 22 insertions, 15 deletions
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, rusqlite::Error> {
- rusqlite::Connection::open("xssbook.db")
+#[derive(Debug)]
+pub struct Database(Connection);
+
+impl Database {
+ pub fn connect() -> Result<Self, rusqlite::Error> {
+ let conn = rusqlite::Connection::open("xssbook.db")?;
+ Ok(Self(conn))
+ }
+
+ #[instrument(skip(self))]
+ pub fn query(&self, query: String) -> Result<usize, rusqlite::Error> {
+ 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<usize, rusqlite::Error> {
- tracing::trace!("Running custom query");
- let conn = connect()?;
- conn.execute(&query, [])
-}