Compare commits

...

3 commits

Author SHA1 Message Date
tejaswini chile
6c1538f96e fix: spec for conversation.updated 2022-10-18 14:14:19 +05:30
daniel gannage
e6750d468d Update conversation on attributes changed 2022-10-03 16:50:46 -04:00
daniel gannage
00a621ee22 Update conversation on attributes changed 2022-10-03 16:40:41 -04:00
3 changed files with 29 additions and 0 deletions

View file

@ -25,6 +25,7 @@ class ActionCableConnector extends BaseActionCableConnector {
'notification.created': this.onNotificationCreated,
'first.reply.created': this.onFirstReplyCreated,
'conversation.read': this.onConversationRead,
'conversation.updated': this.onConversationUpdated,
};
}
@ -85,6 +86,11 @@ class ActionCableConnector extends BaseActionCableConnector {
this.fetchConversationStats();
};
onConversationUpdated = data => {
this.app.$store.dispatch('updateConversation', data);
this.fetchConversationStats();
};
onTypingOn = ({ conversation, user }) => {
const conversationId = conversation.id;

View file

@ -52,6 +52,13 @@ class ActionCableListener < BaseListener
broadcast(account, tokens, CONVERSATION_STATUS_CHANGED, conversation.push_event_data)
end
def conversation_updated(event)
conversation, account = extract_conversation_and_account(event)
tokens = user_tokens(account, conversation.inbox.members) + contact_inbox_tokens(conversation.contact_inbox)
broadcast(account, tokens, CONVERSATION_UPDATED, conversation.push_event_data)
end
def conversation_typing_on(event)
conversation = event.data[:conversation]
account = conversation.account

View file

@ -128,4 +128,20 @@ describe ActionCableListener do
listener.contact_deleted(event)
end
end
describe '#conversation_updated' do
let(:event_name) { :'conversation.updated' }
let!(:event) { Events::Base.new(event_name, Time.zone.now, conversation: conversation, user: agent, is_private: false) }
it 'sends update to inbox members' do
expect(conversation.inbox.reload.inbox_members.count).to eq(1)
expect(ActionCableBroadcastJob).to receive(:perform_later).with(
[agent.pubsub_token, admin.pubsub_token, conversation.contact_inbox.pubsub_token],
'conversation.updated',
conversation.push_event_data.merge(account_id: account.id)
)
listener.conversation_updated(event)
end
end
end