Метод POST /api/v1/update_task_status
Краткое описание
Обновляет статус существующей задачи и при необходимости обновляет статус коннектора и проекта (цепочка статусов).
Требуется аутентификация (Depends(check_login_pass)).
Возвращает обновлённую запись
Task.
Варианты статусов задач:
NULL — новая задача (та, что поставлена методом POST /api/v1/create_task);
received — получена;
waiting — задача ранее запущена в коннекторе и ждет своей очереди для последующего исполнения
started — стартована;
error — завершилась с ошибкой;
success — завершилась успешно.
Аутентификация
Передайте токен/учётные данные в формате, используемом в проекте (check_login_pass).
Тело запроса (JSON) — модель: UpdateStatusRequest
id_connector(string) — идентификатор коннектора (обязательно).id_task(string) — идентификатор задачи (обязательно).status(string) — новый статус задачи (обязательно). Допустимые значения:received,started,error,success,waiting
status_info(string, optional) — дополнительная информация о статусе; если не передан — остаётся прежним.
Алгоритм работы метода
Валидирует значение status; при недопустимом значении возвращает 400.
Находит задачу по (id_task, id_connector). Если не найдена — 400 Task not found.
Устанавливает:
task.status = переданный статус
task.updated_by = логин текущего пользователя
task.ecc_dt = текущее локальное время
task.status_info = переданный status_info или оставляет старое значение
Сохраняет задачу в БД.
Если task.command_type == "exec":
Обновляет поля коннектора:
previous_status = last_status
previous_status_dt = last_status_dt
last_status = новый статус
last_status_dt = текущее время
Если у задачи указан id_project — аналогично обновляет поля проекта.
Выполняет commit и возвращает обновлённый объект Task.
Успешный ответ (200)
Тело: объект Task (JSON) — полная запись задачи с обновлёнными полями (status, updated_by, ecc_dt, status_info и т.д.).
Пример ответа (200):
{ "id_task": "550e8400-e29b-41d4-a716-446655440000", "id_connector": "conn-prod-001", "id_project": "proj-123", "status": "started", "status_info": "Processing started", "command_type": "exec", "data": { ... }, "timestamp": "2025-11-14T12:34:56+03:00", "created_by": "jdoe", "updated_by": "admin", "ecc_dt": "2025-11-14T15:20:10+03:00" }
Обновление полей last_status/previous_status у Коннектора и проекта происходит только для задач с command_type == "exec".
Еслсли нужно массово получить статусы задач, используйте метод /get_task_status.