mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-05 09:48:44 +00:00
update tasks
This commit is contained in:
1 parent
fc2cb185f8
commit
a21e7b79db
5 files changed
+56
-8
No files matched your search
+12
@@ -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"
|
||||
}
|
||||
+7
@@ -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,
|
||||
|
||||
+2
-7
@@ -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(())
|
||||
}
|
||||
Reference in new issue
Block a user