Skip to content

Подтверждение этапа ​

Endpoint ​

POST /bot/tasks/{task_id}/confirm

Подтверждает текущий этап маршрута таска. Когда все assignments текущего этапа подтверждены, таск переходит на следующий этап, а если следующего этапа нет - завершается. Это bot-аналог действия Подтвердить в карточке таска.

Auth ​

http
Authorization: Bearer <bot_token>
Content-Type: application/json

У бота должны быть полные (update) права на форму таска. Если подтверждение завершает таск, боту дополнительно нужно право закрывать задачи, как для Завершения задач.

Path params ​

  • task_id - ID таска

Request body ​

Тело запроса необязательно.

json
{
  "assignment_id": 123
}
  • С assignment_id подтверждается только этот assignment. Он должен принадлежать текущему этапу таска. Это соответствует подтверждению пользователем своего назначения.
  • Без тела (или с {}) подтверждаются все неподтвержденные assignments текущего этапа.

Как получить assignment_id ​

Вызовите GET /bot/tasks/{task_id} и проверьте data.step_assignments. Выберите assignment, у которого step_id совпадает с текущим step_id таска. Assignment предыдущего или следующего этапа будет отклонен.

Полная схема назначения описана на странице Чтение таска.

Примеры ​

Подтвердить весь текущий этап:

bash
curl -X POST \
  -H "Authorization: Bearer <bot_token>" \
  -H "Content-Type: application/json" \
  -d '{}' \
  https://public-api.hcapp.ee/bot/tasks/5001/confirm

Подтвердить один assignment текущего этапа:

bash
curl -X POST \
  -H "Authorization: Bearer <bot_token>" \
  -H "Content-Type: application/json" \
  -d '{"assignment_id": 123}' \
  https://public-api.hcapp.ee/bot/tasks/5001/confirm

Response body ​

json
{
  "success": true,
  "error_message": null,
  "data": {
    "task_id": 5001,
    "form_id": 12,
    "confirmed_assignment_ids": [123],
    "step_changed": true,
    "previous_step_id": 5,
    "step_id": 8,
    "responsible_id": 45,
    "is_finished": false
  }
}
  • confirmed_assignment_ids - assignments, подтвержденные этим вызовом. Пустой список, если все уже было подтверждено.
  • step_changed - true, если таск перешел на другой этап.
  • previous_step_id - этап таска до вызова.
  • step_id - этап таска после вызова.
  • responsible_id - ответственный таска после вызова. Для группового assignment - null.
  • is_finished - true, если подтверждение завершило таск.

Поведение ​

  • Отмечает выбранные assignments как подтвержденные и создает системный комментарий CONFIRM для каждого из них.
  • Если хотя бы один assignment текущего этапа остается неподтвержденным, таск остается на текущем этапе (step_changed: false).
  • Когда все assignments текущего этапа подтверждены, таск переходит на следующий этап, у которого есть неподтвержденные assignments или еще нет assignments. Этапы, где все assignments уже подтверждены (например, после возврата на этап), пропускаются.
  • Если у следующего этапа нет assignments, они создаются из настроек маршрута (default assignees), и ответственный таска обновляется. Если assignments уже есть, ответственным становится пользователь из assignment с ролью RESPONSIBLE.
  • Создает системный комментарий STEP_CHANGED, выдает доступ к таску назначенным пользователям нового этапа и создает для них внутренние нотификации. Внешняя доставка ставится в очередь по включенным каналам нотификаций каждого получателя.
  • Если следующего этапа нет, таск завершается: is_finished равно true, создается системный комментарий FINISH и выполняется стандартная обработка после завершения.
  • Вызов на этапе, где все assignments уже подтверждены, переводит таск дальше без нового подтверждения (confirmed_assignment_ids: []).
  • Обновляет время активности таска.

Чтобы вернуть таск назад, используйте Возврат таска на этап.

Ошибки ​

  • 422 assignment_id должен быть больше 0.
  • 400 Task is already finished.
  • 400 Task is not in a workflow step.
  • 400 Assignment does not belong to the current step.
  • 403 Form access not found - у бота нет полных прав на форму.
  • 403 No close rights for this form - подтверждение завершило бы таск, но бот не может закрывать задачи в этой форме.
  • 404 Task not found.
  • 404 Assignment with id {id} not found for this task.

Для endpoint действует стандартный bot update rate limit.