* @brief Update transcription task status and details * * @param data [in] Task update parameters: * - objid [BigInt] Task identifier * - status [Int] New task status (IN_PROGRESS/COMPLETED/TERMINATED/FILE_IO_ERROR) * - transcribe [Int] Transcription result flag *
(data)
| 417 | * @note Logs status change with task ID |
| 418 | */ |
| 419 | async function update_task(data) { |
| 420 | var query = ``; |
| 421 | if (data.status == TASK_STATUS.IN_PROGRESS) |
| 422 | query = TASK_QUERIES.UPDATE_TASK_STATUS.IN_PROGRESS; |
| 423 | |
| 424 | if (data.status == TASK_STATUS.COMPLETED) |
| 425 | query = TASK_QUERIES.UPDATE_TASK_STATUS.COMPLETED; |
| 426 | |
| 427 | if (data.status == TASK_STATUS.TERMINATED) |
| 428 | query = TASK_QUERIES.UPDATE_TASK_STATUS.TERMINATED; |
| 429 | |
| 430 | if (data.status == TASK_STATUS.FILE_IO_ERROR) |
| 431 | query = TASK_QUERIES.UPDATE_TASK_STATUS.FILE_IO_ERROR; |
| 432 | |
| 433 | try { |
| 434 | const pool = await pool_promise; |
| 435 | |
| 436 | await pool.request() |
| 437 | .input('objid',sql.BigInt, data.objid) |
| 438 | .input('transcribe', sql.INT, data.transcribe) |
| 439 | .input('content_length', sql.INT, data.content_length) |
| 440 | .input('pid', sql.INT, data.pid) |
| 441 | .query(query); |
| 442 | |
| 443 | const status_name = Object.keys(TASK_STATUS).find(key => TASK_STATUS[key] == data.status); |
| 444 | return logger(LOG_LEVEL.INFO, `Update the status of task ${data.objid} to ${status_name}.`); |
| 445 | } catch (err) { |
| 446 | logger(LOG_LEVEL.ERROR, `update_task ${err}.`); |
| 447 | } |
| 448 | } |
| 449 | |
| 450 | /** |
| 451 | * @brief Get file path for task transcription result |
no test coverage detected