feat: remove attempt

This commit is contained in:
Asger Juul Brunshøj 2025-03-11 21:24:46 +01:00
parent 2e83efcf12
commit 3740224f79
2 changed files with 11 additions and 6 deletions

View File

@ -276,24 +276,27 @@ fn WithUserInteraction(
});
let onclick_flash = move |_| {
let attempt = if ui_is_flash.get() { None } else { Some(models::Attempt::Flash) };
submit_attempt.dispatch(RonEncoded(server_functions::UpsertTodaysAttempt {
wall_uid: wall_uid.get(),
problem_uid: problem_uid.get(),
attempt: models::Attempt::Flash,
attempt,
}));
};
let onclick_send = move |_| {
let attempt = if ui_is_send.get() { None } else { Some(models::Attempt::Send) };
submit_attempt.dispatch(RonEncoded(server_functions::UpsertTodaysAttempt {
wall_uid: wall_uid.get(),
problem_uid: problem_uid.get(),
attempt: models::Attempt::Send,
attempt,
}));
};
let onclick_attempt = move |_| {
let attempt = if ui_is_attempt.get() { None } else { Some(models::Attempt::Attempt) };
submit_attempt.dispatch(RonEncoded(server_functions::UpsertTodaysAttempt {
wall_uid: wall_uid.get(),
problem_uid: problem_uid.get(),
attempt: models::Attempt::Attempt,
attempt,
}));
};

View File

@ -217,7 +217,7 @@ pub(crate) async fn get_problem_by_uid(
pub(crate) async fn upsert_todays_attempt(
wall_uid: models::WallUid,
problem_uid: models::ProblemUid,
attempt: models::Attempt,
attempt: Option<models::Attempt>,
) -> Result<RonEncoded<models::UserInteraction>, ServerFnError> {
use crate::server::db::Database;
use crate::server::db::DatabaseOperationError;
@ -233,7 +233,7 @@ pub(crate) async fn upsert_todays_attempt(
DatabaseOperation(DatabaseOperationError),
}
async fn inner(wall_uid: models::WallUid, problem_uid: models::ProblemUid, attempt: models::Attempt) -> Result<UserInteraction, Error> {
async fn inner(wall_uid: models::WallUid, problem_uid: models::ProblemUid, attempt: Option<models::Attempt>) -> Result<UserInteraction, Error> {
let db = expect_context::<Database>();
let user_interaction = db
@ -260,7 +260,9 @@ pub(crate) async fn upsert_todays_attempt(
}
}
if let Some(attempt) = attempt {
user_interaction.attempted_on.insert(chrono::Utc::now(), attempt);
}
user_table.insert(key, user_interaction.clone())?;