| Current Path : /var/www/element/data/www/revenuestory.ru/bitrix/modules/rest/lib/preset/data/ |
| Current File : /var/www/element/data/www/revenuestory.ru/bitrix/modules/rest/lib/preset/data/element.php |
<?php
namespace Bitrix\Rest\Preset\Data;
use Bitrix\Main\ArgumentException;
use Bitrix\Main\Data\Cache;
use Bitrix\Main\Localization\Loc;
use Bitrix\Main\Web\Json;
use Bitrix\Rest\Dictionary\Integration;
Loc::loadMessages(__FILE__);
/**
* Class Element
* @package Bitrix\Rest\Preset\Data
*/
class Element extends Base
{
private const CACHE_DIR = '/rest/integration/element/';
private const DEFAULT_DATA = [
'application' => [
'CODE' => 'application',
'ELEMENT_CODE' => 'application',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1003_TITLE',
'ACTIVE' => 'Y',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1003_DESCRIPTION',
'DESCRIPTION_FULL.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1003_DESCRIPTION_FULL',
'SECTION_CODE' => 'standard',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY_NEEDED' => 'D',
'OUTGOING_NEEDED' => 'D',
'WIDGET_NEEDED' => 'D',
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'Y',
'SCOPE' => [
'crm',
],
'APPLICATION_DOWNLOAD_EXAMPLE_TYPE' => 'local_app',
'DESCRIPTION_SCOPE' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1003_DESCRIPTION_SCOPE_DESCRIPTION',
],
],
],
'out-hook' => [
'CODE' => 'out-hook',
'ELEMENT_CODE' => 'out-hook',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1002_TITLE',
'ACTIVE' => 'Y',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1002_DESCRIPTION',
'SECTION_CODE' => 'standard',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY_NEEDED' => 'D',
'OUTGOING_NEEDED' => 'Y',
'SCOPE_NEEDED' => 'D',
'WIDGET_NEEDED' => 'D',
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'D',
'OUTGOING_DOWNLOAD_EXAMPLE_TYPE' => 'out_hook',
'SCOPE' => [],
'DESCRIPTION_SCOPE' => [],
],
],
'in-hook' => [
'CODE' => 'in-hook',
'ELEMENT_CODE' => 'in-hook',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1001_TITLE',
'ACTIVE' => 'Y',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1001_DESCRIPTION',
'SECTION_CODE' => 'standard',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY' => [
[
'CODE' => 'params',
'METHOD' => 'profile',
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1001_INCOMING_QUERY_TITLE_ITEMS',
'ITEMS' => [],
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'in_hook',
],
],
'OUTGOING_NEEDED' => 'D',
'WIDGET_NEEDED' => 'D',
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'D',
'SCOPE' => [],
'DESCRIPTION_SCOPE' => [],
],
],
'contact-sync' => [
'CODE' => 'contact-sync',
'ELEMENT_CODE' => 'contact-sync',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_10_TITLE',
'ACTIVE' => 'Y',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_10_DESCRIPTION',
'SECTION_CODE' => 'external',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY' => [
[
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_10_INCOMING_QUERY_TITLE',
'CODE' => 'params',
'METHOD' => 'crm.contact.get',
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'custom_sync',
'QUERY_INFORMATION_URL.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_10_INCOMING_QUERY_INFORMATION_URL',
'ITEMS' => [
[
'title' => 'ID',
'value' => '42',
],
],
'QUERY_INFORMATION_URL' => 'https://dev.1c-bitrix.ru/rest_help/crm/contacts/crm_contact_get.php',
],
],
'OUTGOING_NEEDED' => 'Y',
'OUTGOING_DOWNLOAD_EXAMPLE_TYPE' => 'custom_sync',
'OUTGOING_EVENTS' => [
'ONCRMCONTACTUPDATE',
],
'WIDGET_NEEDED' => 'D',
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'D',
'SCOPE' => [
'crm',
],
'DESCRIPTION_OUTGOING' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_10_DESCRIPTION_OUTGOING_DESCRIPTION',
],
'DESCRIPTION_SCOPE' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_10_DESCRIPTION_SCOPE_DESCRIPTION',
],
],
],
'contact-add' => [
'CODE' => 'contact-add',
'SECTION_CODE' => 'migration',
'ELEMENT_CODE' => 'contact-add',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_2_TITLE',
'ACTIVE' => 'Y',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_2_DESCRIPTION',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY' => [
[
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_2_INCOMING_QUERY_TITLE',
'METHOD' => 'crm.contact.add',
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'query',
'QUERY_INFORMATION_URL.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_2_INCOMING_QUERY_INFORMATION_URL',
'DESCRIPTION_METHOD' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_2_DESCRIPTION_METHOD_DESCRIPTION',
],
'CODE' => 'params',
'ITEMS' => [
[
'title' => 'FIELDS[NAME]',
'value.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_2_INCOMING_QUERY_ITEMS_VALUE_0',
],
[
'title' => 'FIELDS[LAST_NAME]',
'value.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_2_INCOMING_QUERY_ITEMS_VALUE_1',
],
[
'title' => 'FIELDS[EMAIL][0][VALUE]',
'value.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_2_INCOMING_QUERY_ITEMS_VALUE_2',
'value' => 'mail@example.com',
],
[
'title' => 'FIELDS[EMAIL][0][VALUE_TYPE]',
'value' => 'WORK',
],
[
'title' => 'FIELDS[PHONE][0][VALUE]',
'value.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_2_INCOMING_QUERY_ITEMS_VALUE_3',
'value' => '555888',
],
[
'title' => 'FIELDS[PHONE][0][VALUE_TYPE]',
'value' => 'WORK',
],
],
'QUERY_INFORMATION_URL' => 'https://dev.1c-bitrix.ru/rest_help/crm/contacts/crm_contact_add.php',
],
],
'OUTGOING_NEEDED' => 'N',
'WIDGET_NEEDED' => 'D',
'SCOPE' => [
'crm',
],
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'D',
'OUTGOING_EVENTS' => [
'ONCRMCONTACTADD',
'ONCRMCONTACTUPDATE',
'ONCRMCONTACTDELETE',
],
'DESCRIPTION_OUTGOING' => [],
'DESCRIPTION_SCOPE' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_2_DESCRIPTION_SCOPE_DESCRIPTION',
],
],
],
'export-email-new-contact' => [
'CODE' => 'export-email-new-contact',
'ELEMENT_CODE' => 'export-email-new-contact',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_3_TITLE',
'ACTIVE' => 'Y',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_3_DESCRIPTION',
'SECTION_CODE' => 'migration',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY' => [
[
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_3_INCOMING_QUERY_TITLE',
'CODE' => 'params',
'METHOD' => 'crm.contact.list',
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'query',
'QUERY_INFORMATION_URL.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_3_INCOMING_QUERY_INFORMATION_URL',
'DESCRIPTION_METHOD' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_3_DESCRIPTION_METHOD_DESCRIPTION',
],
'ITEMS' => [
[
'title' => 'FILTER[>DATE_CREATE]',
'value' => '2019-01-01',
],
[
'title' => 'SELECT[]',
'value' => 'NAME',
],
[
'title' => 'SELECT[]',
'value' => 'LAST_NAME',
],
[
'title' => 'SELECT[]',
'value' => 'EMAIL',
],
],
'QUERY_INFORMATION_URL' => 'https://dev.1c-bitrix.ru/rest_help/crm/contacts/crm_contact_list.php',
],
],
'OUTGOING_NEEDED' => 'D',
'WIDGET_NEEDED' => 'D',
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'D',
'SCOPE' => [
'crm',
],
'DESCRIPTION_SCOPE' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_3_DESCRIPTION_SCOPE_DESCRIPTION',
],
],
],
'user-add' => [
'CODE' => 'user-add',
'ELEMENT_CODE' => 'user-add',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_4_TITLE',
'ACTIVE' => 'N',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_4_DESCRIPTION',
'SECTION_CODE' => 'migration',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY' => [
[
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_4_INCOMING_QUERY_TITLE',
'METHOD' => 'user.add',
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'query',
'QUERY_INFORMATION_URL.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_4_INCOMING_QUERY_INFORMATION_URL',
'DESCRIPTION_METHOD' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_4_DESCRIPTION_METHOD_DESCRIPTION',
],
'CODE' => 'params',
'ITEMS' => [
[
'title' => 'MESSAGE_TEXT',
'value.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_4_INCOMING_QUERY_ITEMS_VALUE_0',
],
[
'title' => 'EMAIL',
'value.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_4_INCOMING_QUERY_ITEMS_VALUE_1',
'value' => 'mail@example.com',
],
[
'title' => 'UF_DEPARTMENT[]',
'value' => '1',
],
],
'QUERY_INFORMATION_URL' => 'https://dev.1c-bitrix.ru/rest_help/users/user_add.php',
],
],
'OUTGOING_NEEDED' => 'D',
'WIDGET_NEEDED' => 'D',
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'D',
'SCOPE' => [
'user',
],
'DESCRIPTION_SCOPE' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_4_DESCRIPTION_SCOPE_DESCRIPTION',
],
],
],
'lead-change-status' => [
'CODE' => 'lead-change-status',
'ELEMENT_CODE' => 'lead-change-status',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_5_TITLE',
'ACTIVE' => 'Y',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_5_DESCRIPTION',
'SECTION_CODE' => 'auto-sales',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY' => [
[
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_5_INCOMING_QUERY_TITLE',
'CODE' => 'params',
'METHOD' => 'crm.lead.update',
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'query',
'QUERY_INFORMATION_URL.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_5_INCOMING_QUERY_INFORMATION_URL',
'DESCRIPTION_METHOD' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_5_DESCRIPTION_METHOD_DESCRIPTION',
],
'ITEMS' => [
[
'title' => 'ID',
'value' => '42',
],
[
'title' => 'FIELDS[STATUS_ID]',
'value' => 'CONVERTED',
],
],
'QUERY_INFORMATION_URL' => 'https://dev.1c-bitrix.ru/rest_help/crm/leads/crm_lead_update.php',
],
],
'OUTGOING_NEEDED' => 'D',
'WIDGET_NEEDED' => 'D',
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'D',
'SCOPE' => [
'crm',
],
'DESCRIPTION_SCOPE' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_5_DESCRIPTION_SCOPE_DESCRIPTION',
],
],
],
'tasks-task-add' => [
'CODE' => 'tasks-task-add',
'ELEMENT_CODE' => 'tasks-task-add',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_6_TITLE',
'ACTIVE' => 'N',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_6_DESCRIPTION',
'SECTION_CODE' => 'auto-control',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY' => [
[
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_6_INCOMING_QUERY_TITLE',
'CODE' => 'params',
'METHOD' => 'tasks.task.add',
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'query',
'QUERY_INFORMATION_URL.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_6_INCOMING_QUERY_INFORMATION_URL',
'DESCRIPTION_METHOD' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_6_DESCRIPTION_METHOD_DESCRIPTION',
],
'ITEMS' => [
[
'title' => 'fields[TITLE]',
'value.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_6_INCOMING_QUERY_ITEMS_VALUE_0',
],
[
'title' => 'fields[DESCRIPTION]',
'value.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_6_INCOMING_QUERY_ITEMS_VALUE_1',
],
[
'title' => 'fields[RESPONSIBLE_ID]',
'value' => '1',
],
],
'QUERY_INFORMATION_URL' => 'https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_add.php',
],
],
'OUTGOING_NEEDED' => 'D',
'WIDGET_NEEDED' => 'D',
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'D',
'SCOPE' => [
'task',
],
'DESCRIPTION_SCOPE' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_6_DESCRIPTION_SCOPE_DESCRIPTION',
],
],
],
'send-notify' => [
'CODE' => 'send-notify',
'ELEMENT_CODE' => 'send-notify',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_7_TITLE',
'ACTIVE' => 'Y',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_7_DESCRIPTION',
'SECTION_CODE' => 'auto-control',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY' => [
[
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_7_INCOMING_QUERY_TITLE',
'CODE' => 'params',
'METHOD' => 'im.notify',
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'query',
'QUERY_INFORMATION_URL.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_7_INCOMING_QUERY_INFORMATION_URL',
'DESCRIPTION_METHOD' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_7_DESCRIPTION_METHOD_DESCRIPTION',
],
'ITEMS' => [
[
'title' => 'TO',
'value' => '1',
],
[
'title' => 'MESSAGE',
'value.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_7_INCOMING_QUERY_ITEMS_VALUE_0',
],
[
'title' => 'TYPE',
'value' => 'SYSTEM',
],
],
'QUERY_INFORMATION_URL' => 'https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=93&CHAPTER_ID=07693',
],
],
'OUTGOING_NEEDED' => 'D',
'WIDGET_NEEDED' => 'D',
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'D',
'SCOPE' => [
'im',
],
'DESCRIPTION_SCOPE' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_7_DESCRIPTION_SCOPE_DESCRIPTION',
],
],
],
'blogpost-add' => [
'CODE' => 'blogpost-add',
'ELEMENT_CODE' => 'blogpost-add',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_8_TITLE',
'ACTIVE' => 'Y',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_8_DESCRIPTION',
'SECTION_CODE' => 'auto-control',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY' => [
[
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_8_INCOMING_QUERY_TITLE',
'CODE' => 'params',
'METHOD' => 'log.blogpost.add',
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'query',
'QUERY_INFORMATION_URL.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_8_INCOMING_QUERY_INFORMATION_URL',
'DESCRIPTION_METHOD' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_8_DESCRIPTION_METHOD_DESCRIPTION',
],
'ITEMS' => [
[
'title' => 'POST_TITLE',
'value.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_8_INCOMING_QUERY_ITEMS_VALUE_0',
],
[
'title' => 'POST_MESSAGE',
'value.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_8_INCOMING_QUERY_ITEMS_VALUE_1',
],
[
'title' => 'DEST',
'value' => 'UA',
],
],
'QUERY_INFORMATION_URL' => 'https://dev.1c-bitrix.ru/rest_help/log/log_blogpost_add.php',
],
],
'OUTGOING_NEEDED' => 'D',
'WIDGET_NEEDED' => 'D',
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'D',
'SCOPE' => [
'log',
],
'DESCRIPTION_SCOPE' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_8_DESCRIPTION_SCOPE_DESCRIPTION',
],
],
],
'deal-change-status' => [
'CODE' => 'deal-change-status',
'ELEMENT_CODE' => 'deal-change-status',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_9_TITLE',
'ACTIVE' => 'Y',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_9_DESCRIPTION',
'SECTION_CODE' => 'auto-sales',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY' => [
[
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_9_INCOMING_QUERY_TITLE',
'CODE' => 'params',
'METHOD' => 'crm.deal.update',
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'query',
'QUERY_INFORMATION_URL.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_9_INCOMING_QUERY_INFORMATION_URL',
'DESCRIPTION_METHOD' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_9_DESCRIPTION_METHOD_DESCRIPTION',
],
'ITEMS' => [
[
'title' => 'ID',
'value' => '42',
],
[
'title' => 'FIELDS[STAGE_ID]',
'value' => 'WON',
],
[
'title' => 'FIELDS[CLOSED]',
'value' => '1',
],
],
'QUERY_INFORMATION_URL' => 'https://dev.1c-bitrix.ru/rest_help/crm/cdeals/crm_deal_update.php',
],
],
'OUTGOING_NEEDED' => 'D',
'WIDGET_NEEDED' => 'D',
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'D',
'SCOPE' => [
'crm',
],
'DESCRIPTION_SCOPE' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_9_DESCRIPTION_SCOPE_DESCRIPTION',
],
],
],
'tasks-task-get' => [
'CODE' => 'tasks-task-get',
'ELEMENT_CODE' => 'tasks-task-get',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_11_TITLE',
'ACTIVE' => 'N',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_11_DESCRIPTION',
'SECTION_CODE' => 'auto-control',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY' => [
[
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_11_INCOMING_QUERY_TITLE',
'CODE' => 'params',
'METHOD' => 'tasks.task.get',
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'query',
'QUERY_INFORMATION_URL.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_11_INCOMING_QUERY_INFORMATION_URL',
'DESCRIPTION_METHOD' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_11_DESCRIPTION_METHOD_DESCRIPTION',
],
'ITEMS' => [
[
'title' => 'taskId',
'value' => '42',
],
],
'QUERY_INFORMATION_URL' => 'https://dev.1c-bitrix.ru/rest_help/tasks/task/tasks/tasks_task_get.php',
],
],
'OUTGOING_NEEDED' => 'Y',
'OUTGOING_EVENTS' => [
'ONTASKUPDATE',
],
'WIDGET_NEEDED' => 'N',
'WIDGET_DOWNLOAD_EXAMPLE' => '',
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'D',
'SCOPE' => [
'task',
],
'DESCRIPTION_OUTGOING' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_11_DESCRIPTION_OUTGOING_DESCRIPTION',
],
'DESCRIPTION_WIDGET' => [],
'DESCRIPTION_SCOPE' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_11_DESCRIPTION_SCOPE_DESCRIPTION',
],
],
],
'widget-contact-detail-tab' => [
'CODE' => 'widget-contact-detail-tab',
'ELEMENT_CODE' => 'widget-contact-detail-tab',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_12_TITLE',
'ACTIVE' => 'Y',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_12_DESCRIPTION',
'SECTION_CODE' => 'widget',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY' => [
[
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_12_INCOMING_QUERY_TITLE',
'CODE' => 'params',
'METHOD' => 'crm.contact.get',
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'query',
'QUERY_INFORMATION_URL.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_12_INCOMING_QUERY_INFORMATION_URL',
'DESCRIPTION_METHOD' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_12_DESCRIPTION_METHOD_DESCRIPTION',
],
'ITEMS' => [
[
'title' => 'ID',
'value' => '42',
],
],
'QUERY_INFORMATION_URL' => 'https://dev.1c-bitrix.ru/rest_help/crm/contacts/crm_contact_get.php',
],
],
'OUTGOING_NEEDED' => 'D',
'WIDGET_NEEDED' => 'Y',
'WIDGET_LIST' => [
'CRM_CONTACT_DETAIL_TAB',
],
'WIDGET_DOWNLOAD_EXAMPLE' => '',
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'D',
'SCOPE' => [
'crm',
'placement',
],
'DESCRIPTION_WIDGET' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_12_DESCRIPTION_WIDGET_DESCRIPTION',
],
'DESCRIPTION_SCOPE' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_12_DESCRIPTION_SCOPE_DESCRIPTION',
],
],
],
'widget-contact-detail-activity' => [
'CODE' => 'widget-contact-detail-activity',
'ELEMENT_CODE' => 'widget-contact-detail-activity',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_13_TITLE',
'ACTIVE' => 'Y',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_13_DESCRIPTION',
'SECTION_CODE' => 'widget',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY' => [
[
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_13_INCOMING_QUERY_TITLE',
'CODE' => 'params',
'METHOD' => 'crm.contact.update',
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'query',
'QUERY_INFORMATION_URL.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_13_INCOMING_QUERY_INFORMATION_URL',
'DESCRIPTION_METHOD' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_13_DESCRIPTION_METHOD_DESCRIPTION',
],
'ITEMS' => [
[
'title' => 'ID',
'value' => '42',
],
],
'QUERY_INFORMATION_URL' => 'https://dev.1c-bitrix.ru/rest_help/crm/contacts/crm_contact_get.php',
],
],
'WIDGET_LIST' => [
'CRM_CONTACT_DETAIL_TAB',
],
'OUTGOING_NEEDED' => 'D',
'WIDGET_NEEDED' => 'Y',
'WIDGET_DOWNLOAD_EXAMPLE' => '',
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'D',
'SCOPE' => [
'crm',
'placement',
],
'DESCRIPTION_WIDGET' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_13_DESCRIPTION_WIDGET_DESCRIPTION',
],
'DESCRIPTION_SCOPE' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_13_DESCRIPTION_SCOPE_DESCRIPTION',
],
],
],
'widget-call-cart' => [
'CODE' => 'widget-call-cart',
'ELEMENT_CODE' => 'widget-call-cart',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_14_TITLE',
'ACTIVE' => 'Y',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_14_DESCRIPTION',
'SECTION_CODE' => 'widget',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY' => [
[
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_14_INCOMING_QUERY_TITLE',
'CODE' => 'params',
'METHOD' => 'crm.lead.get',
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'query',
'QUERY_INFORMATION_URL.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_14_INCOMING_QUERY_INFORMATION_URL',
'DESCRIPTION_METHOD' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_14_DESCRIPTION_METHOD_DESCRIPTION',
],
'ITEMS' => [
[
'title' => 'ID',
'value' => '42',
],
],
'QUERY_INFORMATION_URL' => 'https://dev.1c-bitrix.ru/rest_help/crm/leads/crm_lead_get.php',
],
],
'OUTGOING_NEEDED' => 'D',
'WIDGET_NEEDED' => 'Y',
'WIDGET_LIST' => [
'CALL_CARD',
],
'WIDGET_DOWNLOAD_EXAMPLE' => '',
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'D',
'SCOPE' => [
'crm',
'telephony',
'placement',
],
'DESCRIPTION_WIDGET' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_14_DESCRIPTION_WIDGET_DESCRIPTION',
],
'DESCRIPTION_SCOPE' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_14_DESCRIPTION_SCOPE_DESCRIPTION',
],
],
],
'creat-invoice-by-tasks-time' => [
'CODE' => 'creat-invoice-by-tasks-time',
'ELEMENT_CODE' => 'creat-invoice-by-tasks-time',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_15_TITLE',
'ACTIVE' => 'Y',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_15_DESCRIPTION',
'SECTION_CODE' => 'widget',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY' => [
[
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_15_INCOMING_QUERY_TITLE',
'DESCRIPTION_METHOD' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_15_DESCRIPTION_METHOD_DESCRIPTION',
],
'CODE' => 'params',
'METHOD' => 'crm.invoice.add',
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'query',
'QUERY_INFORMATION_URL.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_15_INCOMING_QUERY_INFORMATION_URL',
'ITEMS' => [
[
'title' => 'FIELDS[TITLE]',
],
],
'QUERY_INFORMATION_URL' => 'https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/getlist.php',
],
],
'OUTGOING_NEEDED' => 'Y',
'OUTGOING_EVENTS' => [],
'WIDGET_LIST' => [
'CRM_TASK_DETAIL',
],
'WIDGET_NEEDED' => 'N',
'WIDGET_DOWNLOAD_EXAMPLE' => '',
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'D',
'SCOPE' => [
'crm',
'task',
],
'DESCRIPTION_OUTGOING' => [],
'DESCRIPTION_WIDGET' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_15_DESCRIPTION_WIDGET_DESCRIPTION',
],
'DESCRIPTION_SCOPE' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_15_DESCRIPTION_SCOPE_DESCRIPTION',
],
],
],
'custom-widget' => [
'CODE' => 'custom-widget',
'ELEMENT_CODE' => 'custom-widget',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_17_TITLE',
'ACTIVE' => 'Y',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_17_DESCRIPTION',
'SECTION_CODE' => 'migration',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY' => [
[
'METHOD' => 'crm.lead.get',
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'query',
'QUERY_INFORMATION_URL.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_17_INCOMING_QUERY_INFORMATION_URL',
'DESCRIPTION_METHOD' => [],
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_17_INCOMING_QUERY_TITLE',
'CODE' => 'params',
'ITEMS' => [
[
'title' => 'ID',
'value' => '42',
],
],
'QUERY_INFORMATION_URL' => 'https://dev.1c-bitrix.ru/rest_help/crm/leads/crm_lead_get.php',
],
],
'OUTGOING_NEEDED' => 'D',
'WIDGET_NEEDED' => 'Y',
'OUTGOING_EVENTS' => [
'ONCRMLEADADD',
],
'WIDGET_DOWNLOAD_EXAMPLE' => '',
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'D',
'SCOPE' => [
'crm',
'task',
],
'DESCRIPTION_WIDGET' => [],
'DESCRIPTION_SCOPE' => [],
],
],
'bot-notify-staff' => [
'CODE' => 'bot-notify-staff',
'ELEMENT_CODE' => 'bot-notify-staff',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_18_TITLE',
'ACTIVE' => 'Y',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_18_DESCRIPTION',
'SECTION_CODE' => 'chat-bot',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY' => [
[
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_18_INCOMING_QUERY_TITLE',
'CODE' => 'params',
'METHOD' => 'imbot.message.add',
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'query',
'DESCRIPTION_METHOD' => [],
'ITEMS' => [
[
'title' => 'BOT_ID',
'value' => '',
],
[
'title' => 'CLIENT_ID',
'value' => '',
],
[
'title' => 'DIALOG_ID',
'value' => '1',
],
[
'title' => 'MESSAGE',
'value.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_18_INCOMING_QUERY_ITEMS_VALUE_0',
],
],
],
],
'OUTGOING_NEEDED' => 'D',
'WIDGET_NEEDED' => 'D',
'BOT_NEEDED' => 'Y',
'APPLICATION_NEEDED' => 'D',
'SCOPE' => [
'imbot',
],
'DESCRIPTION_OUTGOING' => [],
'DESCRIPTION_WIDGET' => [],
'DESCRIPTION_SCOPE' => [],
],
],
'lead-add' => [
'CODE' => 'lead-add',
'SECTION_CODE' => 'external',
'ELEMENT_CODE' => 'lead-add',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1_TITLE',
'ACTIVE' => 'Y',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1_DESCRIPTION',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'ADMIN_ONLY' => 'Y',
'OPTIONS' => [
'QUERY' => [
[
'CODE' => 'params',
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1_INCOMING_QUERY_TITLE',
'METHOD' => 'crm.lead.add',
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'query',
'QUERY_INFORMATION_URL.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1_INCOMING_QUERY_INFORMATION_URL',
'ITEMS' => [
[
'title' => 'FIELDS[TITLE]',
'value.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1_INCOMING_QUERY_ITEMS_VALUE_0',
],
[
'title' => 'FIELDS[NAME]',
'value.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1_INCOMING_QUERY_ITEMS_VALUE_1',
],
[
'title' => 'FIELDS[LAST_NAME]',
'value.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1_INCOMING_QUERY_ITEMS_VALUE_2',
],
[
'title' => 'FIELDS[EMAIL][0][VALUE]',
'value.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1_INCOMING_QUERY_ITEMS_VALUE_3',
'value' => 'mail@example.com',
],
[
'title' => 'FIELDS[EMAIL][0][VALUE_TYPE]',
'value' => 'WORK',
],
[
'title' => 'FIELDS[PHONE][0][VALUE]',
'value.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1_INCOMING_QUERY_ITEMS_VALUE_4',
'value' => '555888',
],
[
'title' => 'FIELDS[PHONE][0][VALUE_TYPE]',
'value' => 'WORK',
],
],
'QUERY_INFORMATION_URL' => 'https://dev.1c-bitrix.ru/rest_help/crm/leads/crm_lead_add.php',
],
],
'OUTGOING_NEEDED' => 'D',
'WIDGET_NEEDED' => 'D',
'BOT_NEEDED' => 'D',
'APPLICATION_NEEDED' => 'D',
'SCOPE' => [
'crm',
],
'DESCRIPTION_SCOPE' => [
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_1_DESCRIPTION_SCOPE_DESCRIPTION',
],
],
],
'bot-action-chat' => [
'CODE' => 'bot-action-chat',
'ELEMENT_CODE' => 'bot-action-chat',
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_19_TITLE',
'ACTIVE' => 'Y',
'DESCRIPTION.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_19_DESCRIPTION',
'SECTION_CODE' => 'chat-bot',
'ICON_CLASS' => 'rest-integration-tile-img-hidden',
'OPTIONS' => [
'QUERY' => [
[
'ITEMS_TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_19_INCOMING_QUERY_TITLE',
'CODE' => 'params',
'METHOD' => 'crm.lead.add',
'METHOD_DOWNLOAD_EXAMPLE_TYPE' => 'query',
'DESCRIPTION_METHOD' => [
'TITLE.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_19_TITLE',
],
'ITEMS' => [
[
'title' => 'BOT_ID',
'value' => '',
],
[
'title' => 'CLIENT_ID',
'value' => '',
],
[
'title' => 'DIALOG_ID',
'value' => 'chat1',
],
[
'title' => 'FIELDS[TITLE]',
'value.MESSAGE_CODE' => 'REST_INTEGRATION_PATTERNS_19_INCOMING_QUERY_ITEMS_VALUE_0',
],
],
],
],
'OUTGOING_NEEDED' => 'Y',
'OUTGOING_EVENTS' => [
'ONCRMLEADADD',
'ONCRMINVOICEDELETE',
],
'WIDGET_NEEDED' => 'N',
'WIDGET_DOWNLOAD_EXAMPLE' => '',
'BOT_NEEDED' => 'Y',
'APPLICATION_NEEDED' => 'D',
'SCOPE' => [
'crm',
'task',
],
'DESCRIPTION_OUTGOING' => [],
'DESCRIPTION_WIDGET' => [],
'DESCRIPTION_SCOPE' => [],
],
],
];
public const DEFAULT_APPLICATION = 'application';
public const DEFAULT_IN_WEBHOOK = 'in-hook';
public const DEFAULT_OUT_WEBHOOK = 'out-hook';
/**
* @param $code string
*
* @return array
* @throws ArgumentException
*/
public static function get($code) : array
{
$result = [];
$cache = Cache::createInstance();
if ($cache->initCache(static::CACHE_TIME, 'item_' . $code . LANGUAGE_ID, static::CACHE_DIR))
{
$result = $cache->getVars();
}
elseif ($cache->startDataCache())
{
$remoteDictionary = new Integration();
$dictionary = $remoteDictionary->toArray();
if (!empty($dictionary))
{
$dictionaryCode = array_column($dictionary, 'code');
$key = array_search($code, $dictionaryCode, true);
if ($key !== false)
{
$el = $dictionary[$key];
if (!empty($el['option']))
{
$data = Json::decode(base64_decode($el['option']));
if (is_array($data))
{
$data = static::changeMessage($data);
$data['CODE'] = $data['ELEMENT_CODE'];
$result = $data;
}
}
}
}
if (empty($result) && !empty(static::DEFAULT_DATA[$code]))
{
$result = static::changeMessage(static::DEFAULT_DATA[$code]);
}
$cache->endDataCache($result);
}
return $result;
}
/**
* @param $sectionCode string
*
* @return array
* @throws ArgumentException
*/
public static function getList($sectionCode) : array
{
$result = [];
$cache = Cache::createInstance();
if ($cache->initCache(static::CACHE_TIME, 'section_' . $sectionCode . LANGUAGE_ID, static::CACHE_DIR))
{
$result = $cache->getVars();
}
elseif ($cache->startDataCache())
{
$dictionary = new Integration();
foreach ($dictionary as $el)
{
if (!empty($el['option']))
{
$data = Json::decode(base64_decode($el['option']));
if (is_array($data) && $sectionCode === $data['SECTION_CODE'])
{
$data = static::changeMessage($data);
$data['CODE'] = $data['ELEMENT_CODE'];
$result[$data['CODE']] = $data;
}
}
}
if (empty($result))
{
foreach (static::DEFAULT_DATA as $data)
{
if ($sectionCode === $data['SECTION_CODE'])
{
$data = static::changeMessage($data);
$result[$data['CODE']] = $data;
}
}
}
$cache->endDataCache($result);
}
return $result;
}
}