3namespace Bitrix\Rest\Preset;
6use Bitrix\Main\Localization\Loc;
7use Bitrix\Main\Entity\ReferenceField;
8use Bitrix\Main\ORM\Query\Join;
9use Bitrix\Rest\APAuth\PasswordTable;
11Loc::loadMessages(__FILE__);
60 return 'b_rest_integration';
72 'data_type' =>
'integer',
74 'autocomplete' =>
true,
75 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_ID_FIELD'),
78 'data_type' =>
'integer',
79 'validation' =>
array(__CLASS__,
'validateUser'),
80 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_USER_ID_FIELD'),
82 'ELEMENT_CODE' =>
array(
83 'data_type' =>
'string',
85 'validation' =>
array(__CLASS__,
'validateElementCode'),
86 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_ELEMENT_CODE_FIELD'),
89 'data_type' =>
'string',
91 'validation' =>
array(__CLASS__,
'validateTitle'),
92 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_TITLE_FIELD'),
94 'PASSWORD_ID' =>
array(
95 'data_type' =>
'integer',
96 'validation' =>
array(__CLASS__,
'validatePassword'),
97 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_PASSWORD_ID_FIELD'),
100 'data_type' =>
'integer',
101 'validation' =>
array(__CLASS__,
'validateApp'),
102 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_APP_ID_FIELD'),
105 'data_type' =>
'text',
106 'save_data_modification' =>
function()
111 return is_array($value) ? implode(
',', $value) :
'';
115 'fetch_data_modification' =>
function()
120 return explode(
',', $value);
124 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_SCOPE_FIELD'),
127 'data_type' =>
'text',
128 'serialized' =>
true,
129 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_QUERY_FIELD'),
131 'OUTGOING_EVENTS' =>
array(
132 'data_type' =>
'text',
133 'save_data_modification' =>
function()
138 return is_array($value) ? implode(
',', $value) :
'';
142 'fetch_data_modification' =>
function()
147 return explode(
',', $value);
151 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_OUTGOING_EVENTS_FIELD'),
153 'OUTGOING_NEEDED' =>
array(
154 'data_type' =>
'string',
155 'validation' =>
array(__CLASS__,
'validateOutgoingQueryNeeded'),
156 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_OUTGOING_NEEDED_FIELD'),
158 'OUTGOING_HANDLER_URL' =>
array(
159 'data_type' =>
'string',
160 'validation' =>
array(__CLASS__,
'validateOutgoingHandlerUrl'),
161 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_OUTGOING_HANDLER_URL_FIELD'),
163 'WIDGET_NEEDED' =>
array(
164 'data_type' =>
'string',
165 'validation' =>
array(__CLASS__,
'validateWidgetNeeded'),
166 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_WIDGET_NEEDED_FIELD'),
168 'WIDGET_HANDLER_URL' =>
array(
169 'data_type' =>
'string',
170 'validation' =>
array(__CLASS__,
'validateWidgetHandlerUrl'),
171 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_WIDGET_HANDLER_URL_FIELD'),
173 'WIDGET_LIST' =>
array(
174 'data_type' =>
'text',
175 'save_data_modification' =>
function()
180 return is_array($value) ? implode(
',', $value) :
'';
184 'fetch_data_modification' =>
function()
189 return explode(
',', $value);
193 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_WIDGET_LIST_FIELD'),
195 'APPLICATION_TOKEN' =>
array(
196 'data_type' =>
'string',
197 'validation' =>
array(__CLASS__,
'validateApplicationToken'),
198 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_APPLICATION_TOKEN_FIELD'),
200 'APPLICATION_NEEDED' =>
array(
201 'data_type' =>
'string',
202 'validation' =>
array(__CLASS__,
'validateApplicationNeeded'),
203 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_APPLICATION_NEEDED_FIELD'),
205 'APPLICATION_ONLY_API' =>
array(
206 'data_type' =>
'string',
207 'validation' =>
array(__CLASS__,
'validateApplicationOnlyApi'),
208 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_APPLICATION_ONLY_API_FIELD'),
211 'data_type' =>
'integer',
212 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_BOT_ID_FIELD'),
214 'BOT_HANDLER_URL' =>
array(
215 'data_type' =>
'string',
216 'validation' =>
array(__CLASS__,
'validateBotHandlerUrl'),
217 'title' => Loc::getMessage(
'INTEGRATION_ENTITY_BOT_HANDLER_URL_FIELD'),
219 'USER' =>
new ReferenceField(
221 '\Bitrix\Main\UserTable',
222 array(
'=this.USER_ID' =>
'ref.ID')
224 'PASSWORD' =>
new ReferenceField(
'PASSWORD',
225 PasswordTable::class,
226 Join::on(
'this.PASSWORD_ID',
'ref.ID')
static validateWidgetHandlerUrl()
static validateApplicationNeeded()
static validateApplicationToken()
static onAfterDelete(Main\Entity\Event $event)
static validateApplicationOnlyApi()
static validateWidgetNeeded()
static onAfterUpdate(Main\Entity\Event $event)
static onAfterAdd(Main\Entity\Event $event)
static validateOutgoingQueryNeeded()
static validatePassword()
static validateOutgoingHandlerUrl()
static validateBotHandlerUrl()
static validateElementCode()
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)