summaryrefslogtreecommitdiff
path: root/src/db.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/db.rs')
-rw-r--r--src/db.rs18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/db.rs b/src/db.rs
index dea9924..e9a5d1f 100644
--- a/src/db.rs
+++ b/src/db.rs
@@ -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(())
+}