Add a DB handle
parent
667d881750
commit
2248cdeaad
@ -0,0 +1,20 @@
|
||||
use rusqlite::Connection;
|
||||
use std::path::PathBuf;
|
||||
|
||||
static DB_INIT_QUERY: &'static str = include_str!("init.sql");
|
||||
|
||||
pub struct DbHandle {
|
||||
conn: Connection,
|
||||
}
|
||||
|
||||
impl DbHandle {
|
||||
pub fn new(db_path: &Option<String>) -> DbHandle {
|
||||
let path: PathBuf = db_path
|
||||
.as_ref()
|
||||
.map(|path: &String| PathBuf::from(path))
|
||||
.unwrap_or_else(|| dirs::home_dir().unwrap().join(".foil").to_path_buf());
|
||||
let conn: Connection = Connection::open(path).unwrap();
|
||||
conn.execute_batch(DB_INIT_QUERY).unwrap();
|
||||
DbHandle { conn: conn }
|
||||
}
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
BEGIN TRANSACTION;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS encrypted_values (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
iv TEXT,
|
||||
ciphertext TEXT,
|
||||
mac TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS props(
|
||||
name TEXT NOT NULL PRIMARY KEY,
|
||||
value TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS encrypted_props(
|
||||
name TEXT NOT NULL PRIMARY KEY,
|
||||
encrypted_value INTEGER NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS accounts(
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
server INTEGER NOT NULL,
|
||||
user INTEGER NOT NULL,
|
||||
password INTEGER NOT NULL
|
||||
);
|
||||
|
||||
END TRANSACTION;
|
Loading…
Reference in New Issue