static function PrepareEventForPush($command, $event)
{
$result = [
'cmd' => (string)$command,
'chatId' => (int)$event['chatId'],
'dialogId' => (string)$event['dialogId'],
'counter' => (int)$event['counter'],
];
if ($event['notify'] !== true)
{
$result['notify'] = $event['notify'];
}
if (!empty($event['chat'][$event['chatId']]))
{
$eventChat = $event['chat'][$event['chatId']];
$chat = [
'id' => (int)$eventChat['id'],
'name' => (string)$eventChat['name'],
'owner' => (int)$eventChat['owner'],
'color' => (string)$eventChat['color'],
'type' => (string)$eventChat['type'],
'date_create' => (string)$eventChat['date_create'],
];
if (
!empty($eventChat['avatar'])
&& $eventChat['avatar'] !== '/bitrix/js/im/images/blank.gif'
)
{
$chat['avatar'] = $eventChat['avatar'];
}
if ($eventChat['call'])
{
$chat['call'] = (string)$eventChat['call'];
}
if ($eventChat['call_number'])
{
$chat['call_number'] = (string)$eventChat['call_number'];
}
if ($eventChat['entity_data_1'])
{
$chat['entity_data_1'] = (string)$eventChat['entity_data_1'];
}
if ($eventChat['entity_data_2'])
{
$chat['entity_data_2'] = (string)$eventChat['entity_data_2'];
}
if ($eventChat['entity_data_3'])
{
$chat['entity_data_3'] = (string)$eventChat['entity_data_3'];
}
if ($eventChat['entity_id'])
{
$chat['entity_id'] = (string)$eventChat['entity_id'];
}
if ($eventChat['entity_type'])
{
$chat['entity_type'] = (string)$eventChat['entity_type'];
}
if ($eventChat['extranet'])
{
$chat['extranet'] = true;
}
$result['chat'] = $chat;
}
if (!empty($event['lines']))
{
$result['lines'] = $event['lines'];
}
if (!empty($event['users'][$event['message']['senderId']]))
{
$eventUser = $event['users'][$event['message']['senderId']];
$user = [
'id' => (int)$eventUser['id'],
'name' => (string)$eventUser['name'],
'first_name' => (string)$eventUser['first_name'],
'last_name' => (string)$eventUser['last_name'],
'color' => (string)$eventUser['color'],
];
if (
!empty($eventUser['avatar'])
&& $eventUser['avatar'] !== '/bitrix/js/im/images/blank.gif'
)
{
$user['avatar'] = (string)$eventUser['avatar'];
}
if ($eventUser['absent'])
{
$user['absent'] = true;
}
if (!$eventUser['active'])
{
$user['active'] = $eventUser['active'];
}
if ($eventUser['bot'])
{
$user['bot'] = true;
}
if ($eventUser['extranet'])
{
$user['extranet'] = true;
}
if ($eventUser['network'])
{
$user['network'] = true;
}
if ($eventUser['birthday'])
{
$user['birthday'] = $eventUser['birthday'];
}
if ($eventUser['connector'])
{
$user['connector'] = true;
}
if ($eventUser['external_auth_id'] !== 'default')
{
$user['external_auth_id'] = $eventUser['external_auth_id'];
}
if ($eventUser['gender'] === 'F')
{
$user['gender'] = 'F';
}
if ($eventUser['work_position'])
{
$user['work_position'] = (string)$eventUser['work_position'];
}
$result['users'] = $user;
}
if (!empty($event['files']))
{
foreach ($event['files'] as $key => $value)
{
$file = [
'id' => (int)$value['id'],
'extension' => (string)$value['extension'],
'name' => (string)$value['name'],
'size' => (int)$value['size'],
'type' => (string)$value['type'],
'image' => $value['image'],
'urlDownload' => '',
'urlPreview' => (new BitrixMainWebUri($value['urlPreview']))->deleteParams(['fileName'])->getUri(),
'urlShow' => '',
];
if ($value['image'])
{
$file['image'] = $value['image'];
}
if ($value['progress'] !== 100)
{
$file['progress'] = (int)$value['progress'];
}
if ($value['status'] !== 'done')
{
$file['status'] = $value['status'];
}
$result['files'][$key] = $file;
}
}
if (!empty($event['message']))
{
$eventMessage = $event['message'];
$message = [
'id' => (int)$eventMessage['id'],
'date' => (string)$eventMessage['date'],
'params' => $eventMessage['params'],
'prevId' => (int)$eventMessage['prevId'],
'senderId' => (int)$eventMessage['senderId'],
];
if (isset($message['params']['ATTACH']))
{
unset($message['params']['ATTACH']);
}
if ($eventMessage['system'] === 'Y')
{
$message['system'] = 'Y';
}
$result['message'] = $message;
}
$indexToNameMap = [
"chat" => 1,
"chatId" => 2,
"counter" => 3,
"dialogId" => 4,
"files" => 5,
"message" => 6,
"users" => 8,
"name" => 9,
"avatar" => 10,
"color" => 11,
"notify" => 12,
"type" => 13,
"extranet" => 14,
"date_create" => 20,
"owner" => 21,
"entity_id" => 23,
"entity_type" => 24,
"entity_data_1" => 203,
"entity_data_2" => 204,
"entity_data_3" => 205,
"call" => 201,
"call_number" => 202,
"manager_list" => 209,
"mute_list" => 210,
"first_name" => 40,
"last_name" => 41,
"gender" => 42,
"work_position" => 43,
"active" => 400,
"birthday" => 401,
"bot" => 402,
"connector" => 403,
"external_auth_id" => 404,
"network" => 406,
"textLegacy" => 65,
"date" => 61,
"prevId" => 62,
"params" => 63,
"senderId" => 64,
"system" => 601,
"extension" => 80,
"image" => 81,
"progress" => 82,
"size" => 83,
"status" => 84,
"urlDownload" => 85,
"urlPreview" => 86,
"urlShow" => 87,
"width" => 88,
"height" => 89,
];
return self::PrepareEventForPushChangeKeys($result, $indexToNameMap);
}