Fix more bugs

This commit is contained in:
micialware committed 2026-09-07 16:10:10 +03:00
1 parent 60dae212ec
commit 42c38d55e1
9 files changed
+24 -18

No files matched your search

+1 -1
View File
@@ -23,7 +23,7 @@ impl TableAccessQuerySet<CardState> for CardStatesQuerySet {
}
fn add() -> &'static str {
"INSERT INTO states (word_id, deck_id, score, last_opened, fsrs_opened, fsrs_memory, fsrs_open_day) VALUES (?1, ?2, ?3, ?4)"
"INSERT INTO states (word_id, deck_id, score, last_opened, fsrs_opened, fsrs_memory, fsrs_open_day) VALUES (?1, ?2, ?3, ?4) RETURNING id"
}
fn name() -> &'static str {
+1 -1
View File
@@ -16,7 +16,7 @@ impl TableAccessQuerySet<WordGroup> for CustomFieldsQuerySet {
}
fn add() -> &'static str {
"INSERT INTO word_groups (name) VALUES (?1)"
"INSERT INTO word_groups (name) VALUES (?1) RETURNING id"
}
fn name() -> &'static str {
+1 -1
View File
@@ -17,7 +17,7 @@ impl TableAccessQuerySet<DeckSettings> for DeckQuerySet {
}
fn add() -> &'static str {
"INSERT INTO states (word_id, set_id, score, last_opened, fsrs_opened, fsrs_memory, fsrs_open_day) VALUES (?1, ?2, ?3, ?4)"
"INSERT INTO decks (name, forward, backward, filter) VALUES (?1, ?2, ?3, ?4) RETURNING id"
}
fn name() -> &'static str {
+1 -1
View File
@@ -21,7 +21,7 @@ impl TableAccessQuerySet<HistoryNote> for HistoryQuerySet {
}
fn add() -> &'static str {
"INSERT INTO history (deck_id, state_id, timestamp, answer, before, after, fsrs) VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7)"
"INSERT INTO history (deck_id, state_id, timestamp, answer, before, after, fsrs) VALUES (?1, ?2, ?3, ?4, ?5, ?6, ?7) RETURNING rowid"
}
fn name() -> &'static str {
+6 -6
View File
@@ -3,7 +3,7 @@ use crate::data::entities::{EntityData};
use crate::data::repositories::{BatchedDbLayer, DbLayer};
use crate::notification::MaybeError;
use crate::notification::NotificationData::{DbLoadError, DbSaveError};
use log::debug;
use log::{debug, error};
use rusqlite::{Connection, Error, Params, Row};
use std::marker::PhantomData;
use std::time::Instant;
@@ -51,8 +51,8 @@ impl<T: EntityData, Q: TableAccessQuerySet<T>> DbLayer<T> for SqliteDbLayer<T, Q
let time = Instant::now();
connection
.execute(Q::load(), Q::update_params(entity))
.map_err(|_| DbSaveError)?;
.execute(Q::save(), Q::update_params(entity))
.map_err(|e| {error!("{}", e); DbSaveError})?;
debug!("Updated in {} for {:?}", Q::name(), time.elapsed());
Ok(())
}
@@ -62,7 +62,7 @@ impl<T: EntityData, Q: TableAccessQuerySet<T>> DbLayer<T> for SqliteDbLayer<T, Q
let index: u32 = connection
.query_row(Q::add(), Q::insert_params(entity), |row| row.get(0))
.map_err(|_| DbSaveError)?;
.map_err(|e| {error!("{}", e); DbSaveError})?;
entity.set_id(index.into());
debug!("Added into {} for {:?}", Q::name(), time.elapsed());
@@ -80,7 +80,7 @@ impl<T: EntityData, Q: TableAccessQuerySet<T>> DbLayer<T> for SqliteDbLayer<T, Q
format!("DELETE FROM {} WHERE id = ?1", Q::name()).as_str(),
(&id,),
)
.map_err(|_| DbSaveError)?;
.map_err(|e| {error!("{}", e); DbSaveError})?;
debug!("Deleted from {} for {:?}", Q::name(), time.elapsed());
Ok(())
}
@@ -93,7 +93,7 @@ impl<T: EntityData, Q: TableAccessQuerySet<T>> DbLayer<T> for SqliteDbLayer<T, Q
.expect("Failed to prepare state query");
let iter = stmt
.query_map([], |row| Ok(Q::from_sql(row)?))
.map_err(|_| DbLoadError)?;
.map_err(|e| {error!("{}", e); DbSaveError})?;
iter.filter_map(|res| res.ok())
.for_each(|i| storage.push(i));
+1 -1
View File
@@ -19,7 +19,7 @@ impl TableAccessQuerySet<WordGroup> for WordGroupQuerySet {
}
fn add() -> &'static str {
"INSERT INTO word_groups (name) VALUES (?1)"
"INSERT INTO word_groups (name) VALUES (?1) RETURNING id"
}
fn name() -> &'static str {
+1 -1
View File
@@ -20,7 +20,7 @@ impl TableAccessQuerySet<WordData> for WordQuerySet {
}
fn add() -> &'static str {
"INSERT INTO words (key, value, tags, more, group_id) VALUES (?1, ?2, ?3, ?4, ?5)"
"INSERT INTO words (key, value, tags, more, group_id) VALUES (?1, ?2, ?3, ?4, ?5) RETURNING id"
}
fn name() -> &'static str {