Compare commits
2 Commits
27716c5ec0
...
e3ef695069
| Author | SHA1 | Date | |
|---|---|---|---|
| e3ef695069 | |||
| 5bdfd6835d |
@@ -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());
|
||||||
|
|
||||||
|
|||||||
@@ -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(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user