Используйте переменную входных данных в качестве ключа для получения результатов Zapier (пользовательская интеграция) - PullRequest
0 голосов
/ 20 марта 2019

У меня проблема с созданием частной интеграции Zapier, поскольку Zapier может использовать только массивы в качестве выходных данных вместо объектов. Массив, который мне нужно вызвать, вложен на 2 уровня в мои результаты API, и ключ, который ему нужно вызвать, - это переменная, уникальная для вызываемой задачи (но я могу сделать ее частью входных данных).

Таким образом, чтобы получить правильный массив, javascript должен быть чем-то вроде "return results.custom_field_values[bundle.inputData.id]", но я не могу найти способ получить переменную входных данных, которая будет принята в результатах типа.

Возможно ли это? Я не смог найти решение в документации поддержки.

Вот звонок, который я делаю:

const options = {
  url: `https://api.mavenlink.com/api/v1/custom_field_values.json?subject_type=story&with_subject_id=${bundle.inputData.subject_id}& custom_field_name=Active Assignee`,
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${bundle.authData.access_token}`,
    'Accept': 'application/json'
  },
  params: {
    'subject_id': bundle.inputData.with_subject_id,
    'display_value': 'Active Assignee'
  }
}

return z.request(options)
  .then((response) => {
    response.throwForStatus();
    const results = z.JSON.parse(response.content);

    // You can do any parsing you need for results here before returning them

    return results.custom_field_values[bundle.inputData.id];
  });

Вот мой результат, когда я вызываю только results.custom_field_values:

{
  "233451615": {
    "can_edit": true,
    "subject_type": "story",
    "account_id": 4150797,
    "subject_id": 385046515,
    "updated_at": "2019-03-18T13:54:28-07:00",
    "value": [
      638945
    ],
    "display_value": "Irma Davila",
    "setter_id": "10976265",
    "custom_field_id": "181017",
    "created_at": "2019-03-05T07:00:15-08:00",
    "custom_field_name": "Active Assignee",
    "type": "single",
    "id": "233451615"
  }
}

То, что я пытаюсь сделать, это вызвать только массив внутри объекта, который в данном случае равен «233451615» (это то же самое, что и идентификатор). Однако, несмотря на то, что объект каждый раз отличается, он может быть предоставлен как переменная с помощью ввода.

Спасибо всем, кто хочет помочь!

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

Вам необходимо использовать [] обозначение Ссылка

Изменить это

"return results.custom_field_values.{bundle.inputData.id}"

на это

"return results.custom_field_values[bundle.inputData.id]"
0 голосов
/ 20 марта 2019

Вы пробовали использовать скобочные обозначения вместо точечных?

что-то вроде этого:

results.custom_field_values[{bundle.inputData.id}]

Также убедитесь, что bundle.inputData.id является правильным значением.

...