Clio API - Какой правильный формат для обновления (PATCH) значения настраиваемого поля для вопроса
Кто-нибудь был в состоянии успешно обновить custom_field_values по делу через API Clio?
Я пытаюсь обновить значение для custom_field_values по одному вопросу. Я могу отправить строку JSON с помощью PATCH и обновить значения по умолчанию для таких вопросов, как местоположение или описание, используя следующий формат
{"data":{"location":"Orange"}}
Но когда дело доходит до обновления "значения настраиваемого поля", я получаю ошибку 422 Unprocessable Entity. Я следую документации API Clio v4, и я понимаю, что для обновления значения custom_field_value вам нужен следующий JSON:
{"data":{"custom_field_values":[{"id":658213,"custom_field":{"id":139385},"value":"New Value Goes Here!"}]}}
Однако вот сообщение с ошибкой 422:
{"error":{"type":"ArgumentError","message":"An invalid argument was supplied: invalid custom field value id provided, acceptable format is <type>-<unique id>"}}
Я не могу интерпретировать ту часть, которая предлагает приемлемый формат!
Я также попытался отправить JSON в следующем формате, который наиболее близок к Документам API Clio V2 для обновления настраиваемого поля:
{"data":{"custom_field_values":[{"custom_field":{"id":139385},"value":"New value goes here"}]}}
Но тогда это то, что я получаю обратно:
{"error":{"type":"ArgumentError","message":"An invalid argument was supplied: custom field value for custom field 139385 already exists"}}
Обратите внимание, что это тестируется в POSTMAN независимо от моей среды разработки. Я ценю ваш ответ!
3 ответа
Я успешно создавал запросы для многократного обновления значений настраиваемых полей, и они выполняются для меня все время. Я сравнил ваш JSON с некоторыми примерами JSON, которые я успешно отправил. Ваш синтаксис выглядит правильным, но мне не хватает достаточно, чтобы я мог только догадываться, где может быть ваша ошибка.
Во-первых, вы отправляете патч https://app.clio.com/api/v4/matters/{matter id}.json
право? Мне потребовалось некоторое время, чтобы понять, что вы не можете обновить значение настраиваемого поля вопроса с помощью запроса https://app.clio.com/api/v4/custom_fields/{id}.json
,
Во-вторых, чтобы уточнить, 658213
идентификатор, который вы использовали выше (первое поле идентификатора), должен быть уникальным идентификатором этого экземпляра вашего настраиваемого поля. Вы не получите этого, пока не создадите экземпляр настраиваемого поля, специфичного для этого вопроса. Второе поле идентификатора, куда вы положили 139385
это идентификатор самого настраиваемого поля, которое вы можете получить с помощью запроса https://app.clio.com/api/v4/custom_fields.json
,
Если вы просматриваете документы V.4 в разделе "Пользовательские поля", вы не найдете этого, или, по крайней мере, я не нашел. НО вы можете найти его во вступительном разделе к разделу "Вопросы" для документации: https://app.clio.com/api/v4/documentation
Надеюсь это поможет. Я полагаю, что кто-то в Clio может помочь, проверив, что ваша строка ошибки доставлена, если у вас неверный уникальный идентификатор значения настраиваемого поля.
Чтобы уточнить ответ Джейкоба для всех остальных:
custom_field {id} - это идентификатор, заданный для custom_field при его создании, и он будет одинаковым для всех вопросов или контактов, в которых он используется.
custom_field_value {id} - это идентификатор, данный экземпляру поля custom_field, добавленному к конкретному вопросу и уникальному только для этого вопроса.
Чтобы добавить поле custom_field к вопросу в первый раз, используется следующий формат:
{"data":{"custom_field_values":[{"custom_field":{"id":123456},"value":"string or integer depending on the type of CF"}]}}
Для обновления пользовательского поля, уже добавленного к вопросу, следует использовать следующий формат:
{"data":{"custom_field_values":[{"id":"text_line-1234567", "custom_field":{"id":123456},"value":"string or integer depending on the type of CF"}]}}
Чтобы удалить пользовательское поле, уже добавленное к вопросу, достаточно использовать следующий формат JSON:
{"data":{"custom_field_values":[{"id":"text_line-1234567", "custom_field":{"id":123456},"_destroy":true}]}}
Формат обновления настраиваемого поля, уже добавленного в дело:
{"data":{"custom_field_values":[{"id":"unique_instance_of_your_custom_field", "custom_field":{"id":'custom_field_id'},"value":"value which should be updated"}]}}
Здесь первое поле идентификатора должно быть уникальным идентификатором этого экземпляра вашего пользовательского поля. Чтобы получить это значение, следуйте этому разделу документации, app.clio.com/api/v4/documentation#tag/Matters , а второе поле id — это id самого настраиваемого поля.