- Модуль: rest
- Путь к файлу: ~/bitrix/modules/rest/lib/eventoffline.php
- Класс: BitrixRestEventOfflineTable
- Вызов: EventOfflineTable::callEvent
static function callEvent($fields)
{
if(!isset($fields['CONNECTOR_ID']))
{
$fields['CONNECTOR_ID'] = '';
}
$addFields = array(
'TIMESTAMP_X' => new MainTypeDateTime(),
'MESSAGE_ID' => static::getMessageId($fields),
'APP_ID' => $fields['APP_ID'],
'EVENT_NAME' => $fields['EVENT_NAME'],
'EVENT_DATA' => serialize($fields['EVENT_DATA']),
'EVENT_ADDITIONAL' => serialize($fields['EVENT_ADDITIONAL']),
'CONNECTOR_ID' => $fields['CONNECTOR_ID'],
);
$updateFields = array(
'TIMESTAMP_X' => new MainTypeDateTime(),
'EVENT_DATA' => serialize($fields['EVENT_DATA']),
'EVENT_ADDITIONAL' => serialize($fields['EVENT_ADDITIONAL']),
);
if(array_key_exists('ERROR', $fields))
{
$addFields['ERROR'] = intval($fields['ERROR']) > 0 ? 1 : 0;
$updateFields['ERROR'] = intval($fields['ERROR']) > 0 ? 1 : 0;
}
$connection = MainApplication::getConnection();
$queries = $connection->getSqlHelper()->prepareMerge(
static::getTableName(),
array('MESSAGE_ID', 'APP_ID', 'CONNECTOR_ID', 'PROCESS_ID'),
$addFields,
$updateFields
);
foreach($queries as $query)
{
$connection->queryExecute($query);
}
}