Falcon Space. Работа с чатом

Чат позволяет организовать обмен мгновенными сообщениями между пользователями сайта. Чат может прикрепляться к определенным сущностям, например, к заказу. 

Реализация по умолчанию - /messages (переписка с другими пользователями системы).
Есть комнаты, в них общаются пользователи. 
Для вывода списка комнат (чатов) вставляем такую разметку: 
<div class="as-messages" data-code="userchat"></div>

Если не передан параметр data-roomID или data-itemID, то выводится список всех доступных комнат типа userchat для данного пользователя.
Если мы хотим вывести конкретную переписку комнаты, то указываем:
<div class="as-messages" data-code="userchat" data-roomid="{roomID}"></div>
либо
<div class="as-messages" data-code="userchat" data-itemid="{itemID}"></div>,
где roomID - это ID комнаты (только для существующих комнат). itemID - ID некой сущности(напр заказа). 

Для нового типа необходимо создать новые хранимые процедуры:

  • msg_{typeCode}_getAvailableUsersForRoom - определяет список пользователей группы.
  • msg_{typeCode}_getRoom - получить комнату
  • msg_{typeCode}_getRooms - получить список комнат
  • msg_{typeCode}_afterSendMessage - задает настройки пуш уведомлений и позволяет выполнить внешние действия. 

Делать их необходимо в строгой аналогии с процедурами для кода userchat


Описание SQL коллбека AfterSendMessage

Процедура задает настройки push уведомления для данного сообщения (должны быть включены PWA и Push в GetLayout). 
Также процедура позволяет вызвать внешнее действие.
create procedure [dbo].[msg_example_afterSendMessage]

@messageID int,
@username nvarchar(128)
as
begin
-- SELECT 1 - Настройки для пуш уведомлений
select 'https://google.com' linkUrl,  'SHOW Message' linkTitle, 0 DisablePush
-- SELECT 2 Вызов внешних действий
-- ... email, notifiocation, sms, clearcache,
end

SELECT 1 возвращает настройки push. При этом по messageID можно определить бизнес-логику надо или нет отправлять push. 
Также здесь вы указываете конкретную ссылку на которую пользователь может перейти при клике на пуш уведомление. 

SELECT 2
задает набор внешних действий, которые могут быть выполнены после добавления сообщения.