feat: enable Dialogflow integration all inboxes except email (#3285)

Fixes #2461

Co-authored-by: Sojan Jose <sojan@pepalo.com>
This commit is contained in:
Muhsin Keloth
2021-11-12 17:53:03 +05:30
committed by GitHub
parent d78cb67a2a
commit cf5f6d5a74
8 changed files with 29 additions and 8 deletions

View File

@@ -59,9 +59,10 @@ export default {
...mapGetters({
uiFlags: 'integrations/getUIFlags',
websiteInboxes: 'inboxes/getWebsiteInboxes',
dialogFlowEnabledInboxes: 'inboxes/dialogFlowEnabledInboxes',
}),
inboxes() {
return this.websiteInboxes
return this.dialogFlowEnabledInboxes
.filter(inbox => {
if (!this.isIntegrationDialogflow) {
return true;

View File

@@ -78,6 +78,11 @@ export const getters = {
item => item.channel_type === INBOX_TYPES.TWILIO && item.medium === 'sms'
);
},
dialogFlowEnabledInboxes($state) {
return $state.records.filter(
item => item.channel_type !== INBOX_TYPES.EMAIL
);
},
};
export const actions = {

View File

@@ -24,6 +24,11 @@ describe('#getters', () => {
expect(getters.getTwilioSMSInboxes(state).length).toEqual(1);
});
it('dialogFlowEnabledInboxes', () => {
const state = { records: inboxList };
expect(getters.dialogFlowEnabledInboxes(state).length).toEqual(5);
});
it('getInbox', () => {
const state = {
records: inboxList,

View File

@@ -3,16 +3,24 @@ class HookListener < BaseListener
message = extract_message_and_account(event)[0]
return unless message.webhook_sendable?
message.account.hooks.each do |hook|
HookJob.perform_later(hook, event.name, message: message)
end
execute_hooks(event, message)
end
def message_updated(event)
message = extract_message_and_account(event)[0]
return unless message.webhook_sendable?
execute_hooks(event, message)
end
private
def execute_hooks(event, message)
message.account.hooks.each do |hook|
# In case of dialogflow, we would have a hook for each inbox.
# Which means we will execute the same hook multiple times if the below filter isn't there
next if hook.inbox.present? && hook.inbox != message.inbox
HookJob.perform_later(hook, event.name, message: message)
end
end