fix db errors handle

This commit is contained in:
yggverse 2024-11-14 14:06:03 +02:00
parent be30ec660f
commit 57a8b5091f
2 changed files with 13 additions and 8 deletions

View File

@ -25,10 +25,15 @@ impl Bookmark {
let memory = Rc::new(Memory::new());
// Build initial index
for record in database.records(None) {
if memory.add(record.request, record.id).is_err() {
todo!()
match database.records(None) {
Ok(records) => {
for record in records {
if memory.add(record.request, record.id).is_err() {
todo!()
}
}
}
Err(reason) => todo!("{reason}"),
}
// Return new `Self`

View File

@ -28,10 +28,10 @@ impl Database {
// Getters
/// Get bookmark records from database with optional filter by `request`
pub fn records(&self, request: Option<&str>) -> Vec<Table> {
pub fn records(&self, request: Option<&str>) -> Result<Vec<Table>, Error> {
let readable = self.connection.read().unwrap();
let tx = readable.unchecked_transaction().unwrap();
select(&tx, *self.profile_id, request).unwrap()
let tx = readable.unchecked_transaction()?;
select(&tx, *self.profile_id, request)
}
// Setters
@ -41,10 +41,10 @@ impl Database {
pub fn add(&self, time: DateTime, request: String) -> Result<i64, Error> {
// Begin new transaction
let mut writable = self.connection.write().unwrap();
let tx = writable.transaction().unwrap();
let tx = writable.transaction()?;
// Create new record
insert(&tx, *self.profile_id, time, request).unwrap();
insert(&tx, *self.profile_id, time, request)?;
// Hold insert ID for result
let id = last_insert_id(&tx);