Converted to using rusqlite

This commit is contained in:
Mikayla Maki 2022-10-13 18:24:00 -07:00 committed by K Simmons
parent aa8fa4a6d5
commit dbea3cf20c
8 changed files with 91 additions and 172 deletions

View file

@ -135,25 +135,21 @@ impl Telemetry {
Some(self.state.lock().log_file.as_ref()?.path().to_path_buf())
}
pub fn start(self: &Arc<Self>, db: Arc<Db>) {
pub fn start(self: &Arc<Self>, db: Arc<Mutex<Db>>) {
let this = self.clone();
self.executor
.spawn(
async move {
let device_id = if let Some(device_id) = db
.read(["device_id"])?
.into_iter()
.flatten()
.next()
.and_then(|bytes| String::from_utf8(bytes).ok())
{
let db = db.lock();
let device_id = if let Ok(device_id) = db.read_kvp("device_id") {
device_id
} else {
let device_id = Uuid::new_v4().to_string();
db.write([("device_id", device_id.as_bytes())])?;
db.write_kvp("device_id", &device_id)?;
device_id
};
drop(db);
let device_id = Some(Arc::from(device_id));
let mut state = this.state.lock();
state.device_id = device_id.clone();