From 11714d09db3411d3849b265612a1145439d63069 Mon Sep 17 00:00:00 2001 From: Fabian Posch Date: Wed, 17 Jan 2024 13:22:44 -0500 Subject: [PATCH] implement get_task_status --- src/db_client.cpp | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/db_client.cpp b/src/db_client.cpp index 8874bc4..0ab83d1 100644 --- a/src/db_client.cpp +++ b/src/db_client.cpp @@ -211,9 +211,28 @@ JobStatusType Connection::get_job_status(std::string job) { } -JobStatusType Connection::get_task_status(db::uuid_t) { - std::cout << "JOB STATUS called, implement me pls" << std::endl; - return JobStatusType::IN_PROGRESS; +JobStatusType Connection::get_task_status(db::uuid_t task) { + + auto get_task_status_lambda = [](pqxx::work *txn, db::uuid_t *task, db::JobStatusType *status){ + auto res = txn->exec_params("SELECT part_status FROM artifacts WHERE id = $1 LIMIT 1;", *task); + + if (res.size() < 1) { + *status = db::JobStatusType::UNKNOWN; + } else { + *status = res[0]["part_status"].as(); + } + }; + + std::function get_task_status_func = get_task_status_lambda; + + db::JobStatusType status; + + if (!this->send_request(&get_task_status_func, &task, &status)) { + std::cerr << "Error: Status for task " << db::to_string(task) << " could not be fetched, returning unknown." << std::endl; + return db::JobStatusType::UNKNOWN; + } + + return status; } }