From 201ddf8a3dd45900cf19e3299ad72551622169b4 Mon Sep 17 00:00:00 2001 From: Renato Becker Date: Wed, 22 Apr 2020 10:30:05 -0300 Subject: [PATCH 1/2] remove deprecated omnichannel knowledge base feature. --- app/livechat/client/ui.js | 9 --- .../views/app/tabbar/externalSearch.html | 18 ----- .../client/views/app/tabbar/externalSearch.js | 57 --------------- app/livechat/client/views/regular.js | 1 - app/livechat/server/config.js | 25 ------- app/livechat/server/hooks/externalMessage.js | 72 ------------------- app/livechat/server/index.js | 1 - server/startup/migrations/index.js | 1 + server/startup/migrations/v189.js | 12 ++++ 9 files changed, 13 insertions(+), 183 deletions(-) delete mode 100644 app/livechat/client/views/app/tabbar/externalSearch.html delete mode 100644 app/livechat/client/views/app/tabbar/externalSearch.js delete mode 100644 app/livechat/server/hooks/externalMessage.js create mode 100644 server/startup/migrations/v189.js diff --git a/app/livechat/client/ui.js b/app/livechat/client/ui.js index 3a4d3fb73f2be..23b945147195b 100644 --- a/app/livechat/client/ui.js +++ b/app/livechat/client/ui.js @@ -45,15 +45,6 @@ TabBar.addGroup('uploaded-files-list', ['live']); TabBar.addGroup('push-notifications', ['live']); TabBar.addGroup('video', ['live']); -TabBar.addButton({ - groups: ['live'], - id: 'external-search', - i18nTitle: 'Knowledge_Base', - icon: 'book', - template: 'externalSearch', - order: 10, -}); - MessageTypes.registerType({ id: 'livechat-close', system: true, diff --git a/app/livechat/client/views/app/tabbar/externalSearch.html b/app/livechat/client/views/app/tabbar/externalSearch.html deleted file mode 100644 index a08f388c9d8a7..0000000000000 --- a/app/livechat/client/views/app/tabbar/externalSearch.html +++ /dev/null @@ -1,18 +0,0 @@ - \ No newline at end of file diff --git a/app/livechat/client/views/app/tabbar/externalSearch.js b/app/livechat/client/views/app/tabbar/externalSearch.js deleted file mode 100644 index 2bea37e8c91d5..0000000000000 --- a/app/livechat/client/views/app/tabbar/externalSearch.js +++ /dev/null @@ -1,57 +0,0 @@ -import { Template } from 'meteor/templating'; -import { ReactiveVar } from 'meteor/reactive-var'; - -import './externalSearch.html'; -import { APIClient } from '../../../../../utils/client'; - -const MESSAGES_COUNT = 50; - -Template.externalSearch.helpers({ - messages() { - return Template.instance().externalMessages.get(); - }, - hasMore() { - const instance = Template.instance(); - const externalMessages = instance.externalMessages.get(); - return instance.total.get() > externalMessages.length; - }, -}); - -Template.externalSearch.events({ - 'click button.pick-message'(event, instance) { - event.preventDefault(); - $(`#chat-window-${ instance.roomId } .js-input-message`).val(this.msg).focus(); - }, - 'click .load-more'(e, t) { - e.preventDefault(); - e.stopPropagation(); - t.offset.set(t.offset.get() + MESSAGES_COUNT); - }, - 'click .load-more-livechat-external-messages'(event, instance) { - return instance.offset.set(instance.offset.get() + MESSAGES_COUNT); - }, -}); - -Template.externalSearch.onCreated(function() { - this.roomId = null; - this.externalMessages = new ReactiveVar([]); - this.offset = new ReactiveVar(0); - this.ready = new ReactiveVar(true); - this.total = new ReactiveVar(0); - - this.autorun(async () => { - this.ready.set(false); - const offset = this.offset.get(); - this.roomId = Template.currentData().rid; - if (this.roomId) { - const { messages, total } = await APIClient.v1.get(`livechat/messages.external/${ this.roomId }?count=${ MESSAGES_COUNT }&offset=${ offset }`); - this.total.set(total); - if (offset === 0) { - this.externalMessages.set(messages); - } else { - this.externalMessages.set(this.externalMessages.get().concat(messages)); - } - } - this.ready.set(true); - }); -}); diff --git a/app/livechat/client/views/regular.js b/app/livechat/client/views/regular.js index 1fc7ddf9441ab..30f1a72c3e143 100644 --- a/app/livechat/client/views/regular.js +++ b/app/livechat/client/views/regular.js @@ -5,7 +5,6 @@ import './app/livechatNotSubscribed.html'; import './app/livechatRoomTagSelector'; import './app/tabbar/agentEdit'; import './app/tabbar/agentInfo'; -import './app/tabbar/externalSearch'; import './app/tabbar/visitorEdit'; import './app/tabbar/visitorForward'; import './app/tabbar/visitorHistory'; diff --git a/app/livechat/server/config.js b/app/livechat/server/config.js index 4af508e8c01ab..8ffdb2b040b09 100644 --- a/app/livechat/server/config.js +++ b/app/livechat/server/config.js @@ -250,31 +250,6 @@ Meteor.startup(function() { i18nLabel: 'Lead_capture_phone_regex', }); - settings.add('Livechat_Knowledge_Enabled', false, { - type: 'boolean', - group: 'Omnichannel', - section: 'Knowledge_Base', - public: true, - i18nLabel: 'Enabled', - }); - - settings.add('Livechat_Knowledge_Apiai_Key', '', { - type: 'string', - group: 'Omnichannel', - section: 'Knowledge_Base', - public: true, - i18nLabel: 'Apiai_Key', - secret: true, - }); - - settings.add('Livechat_Knowledge_Apiai_Language', 'en', { - type: 'string', - group: 'Omnichannel', - section: 'Knowledge_Base', - public: true, - i18nLabel: 'Apiai_Language', - }); - settings.add('Livechat_history_monitor_type', 'url', { type: 'select', group: 'Omnichannel', diff --git a/app/livechat/server/hooks/externalMessage.js b/app/livechat/server/hooks/externalMessage.js deleted file mode 100644 index 41bb98396fa1b..0000000000000 --- a/app/livechat/server/hooks/externalMessage.js +++ /dev/null @@ -1,72 +0,0 @@ -import { HTTP } from 'meteor/http'; -import _ from 'underscore'; - -import { settings } from '../../../settings'; -import { callbacks } from '../../../callbacks'; -import { SystemLogger } from '../../../logger'; -import { LivechatExternalMessage } from '../../../models/server'; -import { normalizeMessageFileUpload } from '../../../utils/server/functions/normalizeMessageFileUpload'; - -let knowledgeEnabled = false; -let apiaiKey = ''; -let apiaiLanguage = 'en'; -settings.get('Livechat_Knowledge_Enabled', function(key, value) { - knowledgeEnabled = value; -}); -settings.get('Livechat_Knowledge_Apiai_Key', function(key, value) { - apiaiKey = value; -}); -settings.get('Livechat_Knowledge_Apiai_Language', function(key, value) { - apiaiLanguage = value; -}); - -callbacks.add('afterSaveMessage', function(message, room) { - // skips this callback if the message was edited - if (!message || message.editedAt) { - return message; - } - - if (!knowledgeEnabled) { - return message; - } - - if (!(typeof room.t !== 'undefined' && room.t === 'l' && room.v && room.v.token)) { - return message; - } - - if (message.file) { - message = normalizeMessageFileUpload(message); - } - - // if the message hasn't a token, it was not sent by the visitor, so ignore it - if (!message.token) { - return message; - } - - try { - const response = HTTP.post('https://api.api.ai/api/query?v=20150910', { - data: { - query: message.msg, - lang: apiaiLanguage, - sessionId: room._id, - }, - headers: { - 'Content-Type': 'application/json; charset=utf-8', - Authorization: `Bearer ${ apiaiKey }`, - }, - }); - - if (response.data && response.data.status.code === 200 && !_.isEmpty(response.data.result.fulfillment.speech)) { - LivechatExternalMessage.insert({ - rid: message.rid, - msg: response.data.result.fulfillment.speech, - orig: message._id, - ts: new Date(), - }); - } - } catch (e) { - SystemLogger.error('Error using Api.ai ->', e); - } - - return message; -}, callbacks.priority.LOW, 'externalWebHook'); diff --git a/app/livechat/server/index.js b/app/livechat/server/index.js index f6deeb0f89336..43f5949a88119 100644 --- a/app/livechat/server/index.js +++ b/app/livechat/server/index.js @@ -7,7 +7,6 @@ import './config'; import './roomType'; import './hooks/beforeCloseRoom'; import './hooks/beforeGetNextAgent'; -import './hooks/externalMessage'; import './hooks/leadCapture'; import './hooks/markRoomResponded'; import './hooks/offlineMessage'; diff --git a/server/startup/migrations/index.js b/server/startup/migrations/index.js index e6de5e3f475ee..edee93ea383fd 100644 --- a/server/startup/migrations/index.js +++ b/server/startup/migrations/index.js @@ -185,4 +185,5 @@ import './v185'; import './v186'; import './v187'; import './v188'; +import './v189'; import './xrun'; diff --git a/server/startup/migrations/v189.js b/server/startup/migrations/v189.js new file mode 100644 index 0000000000000..ca53eaf14d2f8 --- /dev/null +++ b/server/startup/migrations/v189.js @@ -0,0 +1,12 @@ +import { Migrations } from '../../../app/migrations/server'; +import { Settings } from '../../../app/models/server'; + +Migrations.add({ + version: 189, + up() { + console.log('hey'); + Settings.remove({ _id: 'Livechat_Knowledge_Enabled' }); + Settings.remove({ _id: 'Livechat_Knowledge_Apiai_Key' }); + Settings.remove({ _id: 'Livechat_Knowledge_Apiai_Language' }); + }, +}); From 1b342fe8f6540472b66575a1c54c0e95c1e39e16 Mon Sep 17 00:00:00 2001 From: Renato Becker Date: Tue, 5 May 2020 09:39:38 -0300 Subject: [PATCH 2/2] Remove unnecessary console.log. --- server/startup/migrations/v189.js | 1 - 1 file changed, 1 deletion(-) diff --git a/server/startup/migrations/v189.js b/server/startup/migrations/v189.js index ca53eaf14d2f8..1ceaa8071ba90 100644 --- a/server/startup/migrations/v189.js +++ b/server/startup/migrations/v189.js @@ -4,7 +4,6 @@ import { Settings } from '../../../app/models/server'; Migrations.add({ version: 189, up() { - console.log('hey'); Settings.remove({ _id: 'Livechat_Knowledge_Enabled' }); Settings.remove({ _id: 'Livechat_Knowledge_Apiai_Key' }); Settings.remove({ _id: 'Livechat_Knowledge_Apiai_Language' });