Я использую dotnet Podio API для получения и обновления элементов. Всякий раз, когда я пытаюсь обновить элемент, используя функцию ItemService.UpdateItem (), которая имеет отношение к приложению, я получаю исключение в виде:
Invalid value {"files": [], "sharefile_vault_url": null, "title": "10", "app_item_id": 1, "app": {"status": "active", "sharefile_vault_url": null, ... "sharefile_vault_folder_id": null, "revision": 0} (object): must be integer
Это происходит, даже если отношение к приложению не доступно и не изменено.
Кажется, что при обновлении элемента отношением, отношение должно быть ссылочным идентификатором (или некоторым целым числом) и не может быть самим объектом, на который ссылаются, хотя это обеспечивается при получении элемента. Установка отношения к целочисленному идентификатору не помогает, и выдается то же исключение.
Если шаблон элемента имеет отношение приложения, но отношение для отдельного элемента пустое, исключение не выдается.
Я пытался воссоздать приложения в Podio, чтобы посмотреть, есть ли какие-то присущие им ошибки в структурах приложений.
Я пытался обновить отношение элемента к идентификатору отношения, на которое он уже ссылался перед обновлением элемента.
Я пытался использовать функцию ItemService.UpdateItemFieldValues (). Здесь исключение не выдается, но элемент также не обновляется (Как поля могут быть указаны в этой функции?).
string clientId = "client";
string clientSecret = "secret";
int employeeAppId = 123456789;
var podio = new Podio(clientId, clientSecret);
podio.AuthenticateWithPassword("username", "password");
string employeeQrIdExternalId = "id";
Dictionary<string, object> filter = new Dictionary<string, object>
{
{employeeQrIdExternalId, "1234"}
};
var filteredItems = podio.ItemService.FilterItems(appId: employeeAppId, filters: filter);
Item employee = filteredItems.Items.First();
podio.ItemService.UpdateItem(employee); // exception is thrown