Использование API для активных списков

Если планируется добавление значений объектов в активные списки, необходимо выполнить соответствующие шаги настройки API.

Клиент activeList позволяет работать с активными списками с использованием описанных ниже методов.

Методы API для работы с активными списками включают:

Описания и примеры приведены для TypeScript (среда выполнения Deno) и Python.

Подготовка клиента activeList для работы с активными списками

Чтобы начать работу с активными списками, используя пакет SDK, импортируйте его:

Синтаксис импорта в TypeScript
import { SetupActiveList } from '@playbooks/active-list-client'
...
const activeClient = SetupActiveList()
...
export async function main() {
  const v = await activeClient.<method_name>(<arg_1>, <arg_2>, ..., <arg_m>)
  console.log(v)
}
Синтаксис импорта в Python
from playbooks.active_list import ActiveListClient

...
def main() {
...
    client = ActiveListClient.initialize()
    v = client.<method_name>(<arg_1>, <arg_2>, ..., <arg_m>)
    print(v)
...
}

Здесь:

  • <method_name>: имя используемого метода;

  • <arg_N>: параметры метода.

Вывод записи активного списка по ключу (get_record)

Синтаксис TypeScript
get_record({
  activeListId: <active_list_id>, // string
  key: <key> // string
})
Синтаксис Python
get_record(
    id=<active_list_id>, # str
    key=<key> # str
)

Параметры метода включают в себя:

  • <active_list_id>: идентификатор активного списка (строка);

  • <key>: ключ записи (строка).

Примеры получения записи активного списка

Пример скрипта с get_record в TypeScript
id: get_active_list_object_deno
name: Get active list object deno
description: Получение записи активного списка скриптом Deno (TypeScript) с помощью метода get_record
author: Ivan Ivanov
tags: [deno, typescript, active list]
version: 0.0.1
type: script
source: !deno |
  import { SetupActiveList } from '@playbooks/active-list-client'

  const activeListId = '95aaab6a-9119-485e-8621-c5ff4dbc1a40' // id активного списка.

  export async function main() {
    try {
      // Настройка клиента активного списка.
      const activeClient = SetupActiveList()

      // Вывод id активного списка.
      console.log(`Получение значений из активного списка с id: ${activeListId}`)

      // Получение записи активного списка.
      const activeListObject = await activeClient.get_record({activeListId, key: '1'})

      console.log('Активный список получен успешно:')

      // Вывод значений из ответа.
      console.log('count:', activeListObject.count)
      console.log('created_at:', activeListObject.created_at)
      console.log('expired_at:', activeListObject.expired_at)
      console.log('updated_at:', activeListObject.updated_at)
      console.log('fields:', activeListObject.fields)
      console.log('key:', activeListObject.key)

      // Или вывод полного ответа из запроса:
      // console.log('Полный ответ:', JSON.stringify(activeListObject, null, 2))
    } catch (error) {
      console.error(`Произошла ошибка: ${error.message}`)
    }
  }
Пример скрипта с get_record в Python
id: get_active_list_object_py
name: Get active list object py
description: Получение записи активного списка скриптом Python с помощью метода get_record
author: Ivan Ivanov
tags: [python, active list]
version: 0.0.1
type: script
source: !py |
    from playbooks.active_list import ActiveListClient

    active_list_id = '95aaab6a-9119-485e-8621-c5ff4dbc1a40' # id активного списка.

    def main():
        try:
            client = ActiveListClient.initialize()

            record = client.get_record(id=active_list_id, key='1') # id активного списка и значение ключа.
            print('Получение записи')
            print('-' * 30)
            print('Запись с ключом', record.key)
            print('Значение', record.fields)

        except Exception as error:
            # Обработка исключения.
            logger.error(f'Произошла ошибка: {error}')

Вывод активного списка (find_records)

Синтаксис TypeScript
find_records({
  activeListId: <active_list_id> // string
})
Синтаксис Python
find_records(
    id=<active_list_id> # str
)

Параметры метода включают в себя:

  • <active_list_id>: идентификатор активного списка.

Примеры получения записи активного списка

Пример скрипта с find_records в TypeScript
id: Find_active_list_object_deno
name: Find active list object deno
description: Получение массива записей активного списка скриптом Deno (TypeScript) с помощью метода find_records
author: Ivan Ivanov
tags: [typescript, deno, active list]
version: 0.0.1
type: script
source: !deno |
  import { SetupActiveList } from '@playbooks/active-list-client'

  const activeListId = '5aaab6a-9119-485e-8621-c5ff4dbc1a40' // id созданного активного списка.

  export async function main() {
    try {
      // Настройка клиента активного списка.
      const activeClient = SetupActiveList()

      console.log(`Получение списка объектов со значениями из активного списка с id: ${activeListId}`)

      // Поиск записей активного списка. Возвращает Result<Array<ActiveListRecord>>.
      const records = await activeClient.find_records({activeListId})

      console.log('Список записей в активном списке')
      console.log('-'.repeat(30))

      for (const record of records) {
        console.log('Запись с ключом:', record.key)
        console.log('Значение:', record.fields)
        console.log('-'.repeat(30)) // Разделитель для удобства чтения.

      } catch (error) {
        console.error(`Произошла ошибка: ${error.message}`)
      }
  }
Пример скрипта с find_records в Python
id: list_active_list_object_py
name: List active list object py
description: Получение массива записей активного списка скриптом Python с помощью метода find_records
author: Ivan Ivanov
tags: [python, active list]
version: 0.0.1
type: script
source: !py |
    from playbooks.active_list import ActiveListClient

    active_list_id = '6c707e96-f786-4d84-b787-3956d1b4e7a1' # id созданного активного списка.

        def main():
            try:
                client = ActiveListClient.initialize()

                print(f'Получение списка объектов со значениями из активного списка с id: {active_list_id}')

                records = client.find_records(id=active_list_id)
                print('Список записей в активном списке')
                print('-' * 30)
                for record in records:
                    print('Запись с ключом', record.key)
                    print('Значение', record.fields)
                    print('-' * 30)  # Разделитель для удобства чтения.

            except Exception as error:
                # Обработка исключения.
                logger.error(f'Произошла ошибка: {error}')

Создание записи в активном списке (insert-record)

Метод используется для создания записи активного списка. Значения записи активного списка задаются с помощью параметров.

Синтаксис TypeScript
insert_record({
  activeListId: <active_list_id>, // string
  key: <key>, // Entry[]
  value: <values>, // Entry[]
})
Синтаксис Python
insert_record(
    id=<active_list_id>, # str
    key=<key>, # Dict[str, str | int | float | bool | Timestamp]
    value=<values>, # Dict[str, str | int | float | bool | Timestamp]
)

Параметры метода включают в себя:

  • <active_list_id>: идентификатор активного списка (строка);

  • <key>: ключ записи (в TypeScript — массив пар "ключ — значение", в Python — словарь);

  • <values>: поля записи и их значения (в TypeScript — массив пар "ключ — значение", в Python — словарь).

Синтаксис пары "ключ — значение"
{
  key: <field_name>, // string
  value: {
    <value_type>: <field_value> // number | boolean | string | { nanos: number, seconds: number} | null
  }
}

Здесь:

  • <field_name>: имя поля (строка);

  • <value_type>: тип значения (Integer, Float, Boolean, String, Timestamp, Empty);

  • <field_value>: значение поля.

Примеры создания записи активного списка

Пример скрипта с insert_record в TypeScript
id: create_active_list_object_deno
name: Create active list object deno
description: Создание записи активного списка скриптом Deno (TypeScript) с помощью метода insert_record
author: Ivan Ivanov
tags: [deno, typescript, active list]
version: 0.0.1
type: script
source: !deno |
  import { SetupActiveList } from '@playbooks/active-list-client'
  const activeListId = '95aaab6a-9119-485e-8621-c5ff4dbc1a40' // id активного списка.
  export async function main() {
    try {
      // Настройка клиента активного списка.
      const activeClient = SetupActiveList()

      // Вывод id активного списка.
      console.log(`Создание в активном списке с id: ${activeListId}`)

      // Создание записей активного списка. Возвращает массив строк с результатами создания. Принимает id, ключ, значение.
      const insertedObject = await activeClient.insert_record({
        activeListId,
        key: [
          {
            key: 'account', // Это ключ.
            value: {
              String: '1'
            }
          }
        ],
        value: [
          {
            key: 'commonName',
            value: {
              String: 'User'
            }
          },
          {
            key: 'upn',
            value: {
              String: 'ivan.ivanov@corp.local'
            }
          },
          {
            key: 'cmsObjectId',
            value: {
              String: '5'
            }
          }
        ]
      })

      console.log(`Создан объект с ключом: ${insertedObject}`)
    } catch (err) {
      console.error(`Произошла ошибка: ${err.message}`)
    }
  }
Пример скрипта с insert_record в Python
id: create_active_list_object_py
name: Create active list object py
description: Создание записи активного списка скриптом Python с помошью метода insert_record
author: Ivan Ivanov
tags: [python, active list]
version: 0.0.1
type: script
source: !py |
    from playbooks.active_list import ActiveListClient

    active_list_id = '95aaab6a-9119-485e-8621-c5ff4dbc1a40' # id активного списка.

    def main():
        try:
            client = ActiveListClient.initialize()

            # Ключ - значение в активном списке.
            key = {
                'account': '1'
            }
            value = {
                'upn': 'ivan.ivanov@corp.local',
                'commonName': 'User',
                'cmsObjectId': '5'
            }
            client.insert_record(id=active_list_id, key=key, value=value)
            print(f'Запись создана в {active_list_id}')

        except Exception as error:
            # Обработка исключения.
            logger.error(f'Произошла ошибка: {error}')

Удаление записи активного списка (delete_record)

Метод служит для удаления записи активного списка по ключу.

Синтаксис TypeScript
delete_record({
  activeListId: <active_list_id>, // string
  key: <key> // string
})
Синтаксис Python
delete_record(
    id=<active_list_id>, # str
    key=<key> # str
)

Параметры метода включают в себя:

  • <active_list_id>: идентификатор активного списка (строка);

  • <key>: ключ записи (строка).

Примеры удаления записи активного списка

Пример скрипта с delete_record в TypeScript
id: delete_active_list_object_deno
name: Delete active list object deno
description: Удаление записей активного списка скриптом Deno (TypeScript) с помощью метода delete_record
author: Ivan Ivanov
tags: [deno, typescript, active list]
version: 0.0.1
type: script
source: !deno |
  import { SetupActiveList } from '@playbooks/active-list-client'

  const activeListId = '95aaab6a-9119-485e-8621-c5ff4dbc1a40'
  const activeListKeys = ['first_key', 'second_key', 'third_key', ...]

  export async function main() {
      try {
        // Настройка клиента активного списка.
        const activeClient = SetupActiveList()

        // Вывод id активного списка.
        console.log(`Удаление объектов из активного списка с id: ${activeListId}`)

        // Удаление записей из активного списка по каждому ключу.
        for (const key of activeListKeys) {
          // Удаление одной записи из активного списка.
          const deletedObject = await activeClient.delete_record({activeListId, key})

          console.log(`Объект с ключом '${key}' удален.`)
        }
      } catch (error) {
        console.error(`Произошла ошибка: ${error.message}`)
      }
    }
Пример скрипта с delete_record в Python
id: delete_active_list_object_py
name: Delete active list object py
description: Удаление записи активного списка скриптом Python с помощью метода delete_record
author: Ivan Ivanov
tags: [python, active list]
version: 0.0.1
type: script
source: !py |
    from playbooks.active_list import ActiveListClient

    active_list_id = '95aaab6a-9119-485e-8621-c5ff4dbc1a40' # id активного списка.
    key_id = 'account' # Ключ, по которому производится поиск записи.

    def main():
        try:
            client = ActiveListClient.initialize()

            # Удаление записи.
            client.delete_record(id=active_list_id, key=key_id)
            print(f'Запись c ключом {key_id} удалена')

        except Exception as error:
            # Обработка исключения.
            logger.error(f'Произошла ошибка: {error}')

Была ли полезна эта страница?

Обратная связь