Обновление наряда
Для обновления наряда отправьте PATCH-запрос на https://api.planado.ru/v2/jobs/:job_id. Здесь :job_id это uuid или external_id.
$ curl -H "Authorization: Bearer api-key" \
-X PATCH \
--data "{\"description\": \"Updated description\"}" \
https://api.planado.ru/v2/jobs/8070f98d-b3f6-4cc8-b7c4-54b6709cd98b | jq
{
"job_uuid": "8070f98d-b3f6-4cc8-b7c4-54b6709cd98b"
}
Схема запроса
Все поля необязательны.
| Поле | Тип | JSON-тип | Обязательно | Может быть null |
Описание |
|---|---|---|---|---|---|
|
Строка |
Строка |
Нет |
Да |
Текстовое описание наряда. Ограничено 15000 символов |
|
Строка |
Нет |
Да |
Запланированная дата начала наряда |
|
|
Объект |
Нет |
Да |
Запланированная длительность |
|
|
Объект |
Нет |
Да |
Исполнитель — пользователь или бригада |
|
|
Массив |
Нет |
Нет |
Список исполнителей. |
|
|
Массив |
Нет |
Нет |
Список возможных резолюций. Если передан, должен включать как минимум одну успешную и одну неуспешную резолюцию |
|
|
Объект |
Нет |
Нет |
Адрес |
|
|
[Контакт] |
Массив |
Нет |
Нет |
Список контактов |
|
Объект |
Нет |
Да |
Клиент |
|
|
Объект |
Нет |
Да |
Объект |
|
|
Объект |
Нет |
Да |
Участок |
|
|
[Навык] |
Массив |
Нет |
Нет |
Навыки, необходимые для выполнения наряда |
|
Массив |
Нет |
Нет |
Значения дополнительных полей наряда |
|
|
Массив |
Нет |
Нет |
Значения полей отчета наряда |
|
|
Целое |
Число |
Нет |
Нет |
Версия наряда ( |
Некоторые поля, например, possible_resolutions, assignees и assignee, нельзя обновлять у начатого наряда.
Условное обновление
Чтобы не перезаписать изменение, сделанное после того, как вы получили наряд (например, ручную правку длительности диспетчером), передайте expected_version — значение version из ответа запроса наряда. Планадо проверяет версию и записывает обновление атомарно, поэтому изменение, сделанное после вашего запроса, не будет перезаписано.
$ curl -H "Authorization: Bearer api-key" \
-X PATCH \
--data "{\"scheduled_duration\": {\"minutes\": 90}, \"expected_version\": 5}" \
https://api.planado.ru/v2/jobs/8070f98d-b3f6-4cc8-b7c4-54b6709cd98b | jq
Если версия наряда уже не равна expected_version, ничего не записывается, а ответ — 409 Conflict:
{
"code": "stale_version",
"retryable": false
}
Версию увеличивает любое изменение наряда, а не только изменение передаваемых полей: например, смена статуса исполнителем. Получив stale_version, запросите наряд снова, решите, нужно ли обновление, и отправьте его с новой version.
Без expected_version обновление применяется к текущему состоянию наряда. В обоих случаях ответом также может быть 409 Conflict с "code": "version_conflict" и "retryable": true, если наряд одновременно изменяется кем-то ещё: повторите тот же запрос.
Обновление и добавление полей
Примеры изменения полей.