update tasks

This commit is contained in:
Brandon Thomas committed 2025-07-15 21:47:27 -04:00
1 parent fc2cb185f8
commit a21e7b79db
5 files changed
+56 -8

No files matched your search

@@ -0,0 +1,12 @@
{
"db_name": "SQLite",
"query": "\n UPDATE tasks\n SET task_status = ?\n WHERE id = ?\n ",
"describe": {
"columns": [],
"parameters": {
"Right": 2
},
"nullable": []
},
"hash": "dc0367e9e43c3d7dda3623e77337ab4529eac2192475be7d08589886703ba1cb"
}
@@ -28,6 +28,7 @@ use storyteller_client::jobs::list_session_jobs::{list_session_jobs, States};
use storyteller_client::media_files::upload_image_media_file_from_file::upload_image_media_file_from_file;
use tauri::AppHandle;
use tempdir::TempDir;
use sqlite_tasks::queries::update_task_status::{update_task_status, UpdateTaskArgs};
pub async fn storyteller_task_polling_thread(
app_handle: AppHandle,
@@ -124,6 +125,12 @@ async fn polling_loop(
TaskStatus::CompleteSuccess => continue,
_ => {} // Fall-through.
}
update_task_status(UpdateTaskArgs {
db: task_database.get_connection(),
task_id: task.id.clone(),
status: TaskStatus::CompleteSuccess,
}).await?;
let event = GenerationCompleteEvent {
//media_file_token: result.media_file_token,
@@ -3,8 +3,7 @@ use crate::error::SqliteTasksError;
use enums::common::generation_provider::GenerationProvider;
use enums::tauri::tasks::task_status::TaskStatus;
use enums::tauri::tasks::task_type::TaskType;
use log::info;
use sqlx::{Execute, QueryBuilder, Sqlite};
use sqlx::{QueryBuilder, Sqlite};
use tokens::tokens::sqlite::tasks::TaskId;
pub struct ListTasksArgs<'a> {
@@ -62,7 +61,6 @@ pub async fn list_tasks_by_provider_and_tokens(
query_builder.push_bind(provider);
/*
if let Some(provider_job_ids) = args.provider_job_ids {
query_builder.push(" AND provider_job_id IN (");
let mut separated = query_builder.separated(", ");
@@ -73,13 +71,10 @@ pub async fn list_tasks_by_provider_and_tokens(
separated.push_unseparated(") ");
}
*/
//let query = query_builder.build();
let query = query_builder.build_query_as::<RawTask>();
info!("Query: {:?}", query.sql());
// info!("Query: {:?}", query.sql());
let results = query.fetch_all(args.db.get_pool()).await?;
@@ -1,2 +1,3 @@
pub mod create_task;
pub mod list_tasks_by_provider_and_tokens;
pub mod list_tasks_by_provider_and_tokens;
pub mod update_task_status;
@@ -0,0 +1,33 @@
use crate::connection::TaskDbConnection;
use crate::error::SqliteTasksError;
use enums::tauri::tasks::task_status::TaskStatus;
use tokens::tokens::sqlite::tasks::TaskId;
pub struct UpdateTaskArgs<'a> {
pub db: &'a TaskDbConnection,
pub task_id: TaskId,
pub status: TaskStatus,
}
pub async fn update_task_status(
args: UpdateTaskArgs<'_>,
) -> Result<(), SqliteTasksError> {
// TODO(bt,2025-07-12): Fix this. The sqlx mysql queries never required temporaries
let task_id_temp = args.task_id.as_str();
let status_temp = args.status.to_str();
// TODO(bt,2025-07-15): We can't use a LIMIT without a certain compiler flag ?
let query = sqlx::query!(r#"
UPDATE tasks
SET task_status = ?
WHERE id = ?
"#,
task_id_temp,
status_temp,
);
let _r = query.execute(args.db.get_pool()).await?;
Ok(())
}