Compare commits

...

2 Commits

Author SHA1 Message Date
e3ef695069 chore: remove canonicalize migration 2025-04-19 20:54:23 +02:00
5bdfd6835d feat: use on_enter 2025-04-19 20:53:01 +02:00
3 changed files with 7 additions and 45 deletions

View File

@@ -7,7 +7,7 @@ use leptos::prelude::*;
#[component] #[component]
#[tracing::instrument(skip_all)] #[tracing::instrument(skip_all)]
pub fn Attempt(#[prop(into)] date: Signal<DateTime<Utc>>, #[prop(into)] attempt: Signal<Option<models::Attempt>>) -> impl IntoView { pub fn Attempt(#[prop(into)] date: Signal<DateTime<Utc>>, #[prop(into)] attempt: Signal<Option<models::Attempt>>) -> impl IntoView {
tracing::trace!("Enter"); crate::tracing::on_enter!();
let s = time_ago(date.get()); let s = time_ago(date.get());

View File

@@ -13,44 +13,6 @@ pub async fn run_migrations(db: &Database) -> Result<(), Box<dyn std::error::Err
if is_at_version(db, 3).await? { if is_at_version(db, 3).await? {
migrate_to_v4(db).await?; migrate_to_v4(db).await?;
} }
if is_at_version(db, 4).await? {
canonicalize_all_problems(db).await?;
}
Ok(())
}
pub async fn canonicalize_all_problems(db: &Database) -> Result<(), Box<dyn std::error::Error>> {
tracing::warn!("CANONICALIZING ALL PROBLEMS");
db.write(|txn| {
let mut walls_table = txn.open_table(db::v4::TABLE_WALLS)?;
let walls_dump = walls_table
.iter()?
.map(|el| {
let (k, v) = el.unwrap();
(k.value(), v.value())
})
.collect::<BTreeMap<_, _>>();
for (wall_uid, mut wall) in walls_dump.into_iter() {
wall.problems = wall
.problems
.into_iter()
.map(|mut problem| {
problem.pattern = problem.pattern.canonicalize();
problem
})
.collect();
walls_table.insert(wall_uid, wall)?;
}
Ok(())
})
.await?;
Ok(()) Ok(())
} }

View File

@@ -20,7 +20,7 @@ pub async fn get_walls() -> Result<RonEncoded<Vec<models::Wall>>, ServerFnError>
use crate::server::db::Database; use crate::server::db::Database;
use leptos::prelude::expect_context; use leptos::prelude::expect_context;
use redb::ReadableTable; use redb::ReadableTable;
tracing::trace!("Enter"); crate::tracing::on_enter!();
let db = expect_context::<Database>(); let db = expect_context::<Database>();
@@ -45,7 +45,7 @@ pub(crate) async fn get_wall_by_uid(wall_uid: models::WallUid) -> Result<RonEnco
use crate::server::db::Database; use crate::server::db::Database;
use crate::server::db::DatabaseOperationError; use crate::server::db::DatabaseOperationError;
use leptos::prelude::expect_context; use leptos::prelude::expect_context;
tracing::trace!("Enter"); crate::tracing::on_enter!();
#[derive(Debug, derive_more::Error, derive_more::Display)] #[derive(Debug, derive_more::Error, derive_more::Display)]
enum Error { enum Error {
@@ -84,7 +84,7 @@ pub(crate) async fn get_user_interaction(
use crate::server::db::Database; use crate::server::db::Database;
use crate::server::db::DatabaseOperationError; use crate::server::db::DatabaseOperationError;
use leptos::prelude::expect_context; use leptos::prelude::expect_context;
tracing::trace!("Enter"); crate::tracing::on_enter!();
#[derive(Debug, derive_more::Error, derive_more::Display, derive_more::From)] #[derive(Debug, derive_more::Error, derive_more::Display, derive_more::From)]
enum Error { enum Error {
@@ -129,7 +129,7 @@ pub(crate) async fn get_user_interactions_for_wall(
use crate::server::db::DatabaseOperationError; use crate::server::db::DatabaseOperationError;
use leptos::prelude::expect_context; use leptos::prelude::expect_context;
use redb::ReadableTable; use redb::ReadableTable;
tracing::trace!("Enter"); crate::tracing::on_enter!();
#[derive(Debug, derive_more::Error, derive_more::Display, derive_more::From)] #[derive(Debug, derive_more::Error, derive_more::Display, derive_more::From)]
enum Error { enum Error {
@@ -188,7 +188,7 @@ pub(crate) async fn upsert_todays_attempt(
use crate::server::db::DatabaseOperationError; use crate::server::db::DatabaseOperationError;
use leptos::prelude::expect_context; use leptos::prelude::expect_context;
tracing::trace!("Enter"); crate::tracing::on_enter!();
#[derive(Debug, Error, Display, From)] #[derive(Debug, Error, Display, From)]
enum Error { enum Error {
@@ -261,7 +261,7 @@ pub(crate) async fn set_is_favorite(
use crate::server::db::DatabaseOperationError; use crate::server::db::DatabaseOperationError;
use leptos::prelude::expect_context; use leptos::prelude::expect_context;
tracing::trace!("Enter"); crate::tracing::on_enter!();
#[derive(Debug, Error, Display, From)] #[derive(Debug, Error, Display, From)]
enum Error { enum Error {