This commit is contained in:
Mikayla Maki 2022-10-14 16:06:18 -07:00 committed by K Simmons
parent dbea3cf20c
commit 4b09f77950
7 changed files with 88 additions and 44 deletions

View file

@ -1,20 +1,20 @@
use anyhow::Result;
use rusqlite::OptionalExtension;
use super::Db;
impl Db {
pub fn read_kvp(&self, key: &str) -> Result<String> {
let mut stmt = self
.connecion
.prepare_cached("SELECT value FROM kv_store WHERE key = (?)")?;
pub fn read_kvp(&self, key: &str) -> Result<Option<String>> {
let lock = self.connection.lock();
let mut stmt = lock.prepare_cached("SELECT value FROM kv_store WHERE key = (?)")?;
Ok(stmt.query_row([key], |row| row.get(0))?)
Ok(stmt.query_row([key], |row| row.get(0)).optional()?)
}
pub fn delete_kvp(&self, key: &str) -> Result<()> {
let mut stmt = self
.connecion
.prepare_cached("SELECT value FROM kv_store WHERE key = (?)")?;
let lock = self.connection.lock();
let mut stmt = lock.prepare_cached("SELECT value FROM kv_store WHERE key = (?)")?;
stmt.execute([key])?;
@ -22,9 +22,10 @@ impl Db {
}
pub fn write_kvp(&self, key: &str, value: &str) -> Result<()> {
let mut stmt = self
.connecion
.prepare_cached("INSERT OR REPLACE INTO kv_store(key, value) VALUES ((?), (?))")?;
let lock = self.connection.lock();
let mut stmt =
lock.prepare_cached("INSERT OR REPLACE INTO kv_store(key, value) VALUES ((?), (?))")?;
stmt.execute([key, value])?;