diff options
Diffstat (limited to 'src/db.rs')
-rw-r--r-- | src/db.rs | 18 |
1 files changed, 14 insertions, 4 deletions
@@ -1,5 +1,6 @@ -use sqlite::{Connection}; +use rusqlite::{Connection}; use std; +use auth::HashedPassword; type Result<T> = std::result::Result<T, String>; @@ -10,12 +11,21 @@ fn is_initialized(conn: &mut Connection) -> Result<bool> { pub fn init(conn: &mut Connection) -> Result<()> { if !is_initialized(conn)? { info!("Initializing db..."); - conn.execute(" + conn.execute_batch(" BEGIN; CREATE TABLE IF NOT EXISTS users - (username TEXT, salt TEXT, passwd TEXT); + (username TEXT PRIMARY KEY, salt TEXT, passwd TEXT); COMMIT; - ").unwrap(); + ").unwrap(); } Ok(()) } + +pub fn insert_user(conn: &mut Connection, + username: &str, + password: &HashedPassword) -> Result<()> { + conn.execute("INSERT INTO users (username, salt, passwd) + VALUES (?1, ?2, ?3)", + &[&username, &password.salt, &password.enc]).unwrap(); + Ok(()) +} |