Built motion from commit 85328c08.|2.5.50
[motion2.git] / server / services / ami / trigger / index.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x7a54=['chat','operator','ChatWebsiteId','upperFirst','value','AccountId','interaction','message','event','agent','membername','lastevent','routeId','mailSubstatus','null','substatus','offlineMessage','exports','util','lodash','url','ioredis','./urlforward','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','redis','localhost','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','freshsalesAccounts','accounts','dynamics365Accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','syncAgentDial','custom:dialconnect','custom:newinteraction','custom:incomingmessage','custom:offlineMessage','stringify','emit','prototype','clone','motionChannel','undefined','voice','checkTriggers','hasOwnProperty','status','checkTrigger','merge','variables','Actions','length','interface','action','toLowerCase','motionbar','TemplateId','html','data2','buildUri','isNil','data3','data4','location','uriLocation','windowWidth','data5','800','windowHeight','data6','600','winApplication','render','format','user:%s','name','data1','jscripty','trigger:%s','contactmanager','exec','integration','queue','urlforward','parse','query','replace','channel','AllConditions','every','checkConditions','AnyConditions','field','account'];(function(_0x4a77f8,_0xba9c33){var _0x4d886b=function(_0x54236d){while(--_0x54236d){_0x4a77f8['push'](_0x4a77f8['shift']());}};_0x4d886b(++_0xba9c33);}(_0x7a54,0x106));var _0x47a5=function(_0x475c12,_0x474801){_0x475c12=_0x475c12-0x0;var _0x1e1b48=_0x7a54[_0x475c12];return _0x1e1b48;};'use strict';var util=require(_0x47a5('0x0'));var _=require(_0x47a5('0x1'));var url=require(_0x47a5('0x2'));var Mustache=require('mustache');var Redis=require(_0x47a5('0x3'));var urlforward=require(_0x47a5('0x4'));var integration=require('./integration');var cmContact=require(_0x47a5('0x5'));var script=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var logger=require(_0x47a5('0x8'))(_0x47a5('0x9'));var ami=require('../ami');config[_0x47a5('0xa')]=_['defaults'](config[_0x47a5('0xa')],{'host':_0x47a5('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x47a5('0xa')]));var operators={'equals':function(_0x5077f3,_0x5d90b3){return _0x5077f3==_0x5d90b3;},'not_equals':function(_0x582352,_0x2a0e98){return _0x582352!=_0x2a0e98;}};var barAndWebActions=[_0x47a5('0xc'),'url',_0x47a5('0xd')];function Trigger(_0x49e844){this['triggers']=_0x49e844[_0x47a5('0xe')];this[_0x47a5('0xf')]=_0x49e844[_0x47a5('0xf')];this[_0x47a5('0x10')]=_0x49e844[_0x47a5('0x10')];this[_0x47a5('0x11')]=_0x49e844[_0x47a5('0x11')];this['voiceExtensions']=_0x49e844[_0x47a5('0x12')];this[_0x47a5('0x13')]=_0x49e844[_0x47a5('0x13')];this[_0x47a5('0x14')]=_0x49e844[_0x47a5('0x14')];this[_0x47a5('0x15')]=_0x49e844[_0x47a5('0x15')];this[_0x47a5('0x16')]=_0x49e844['sugarcrmAccounts'];this[_0x47a5('0x17')]=_0x49e844[_0x47a5('0x17')];this[_0x47a5('0x18')]=_0x49e844[_0x47a5('0x18')];this[_0x47a5('0x19')]=_0x49e844['vtigerAccounts'];this['servicenowAccounts']=_0x49e844[_0x47a5('0x1a')];this['dynamics365Accounts']=_0x49e844['dynamics365Accounts'];this[_0x47a5('0x1b')]=_0x49e844[_0x47a5('0x1b')];this[_0x47a5('0x1c')]={'zendesk':this[_0x47a5('0x13')],'salesforce':this[_0x47a5('0x15')],'freshdesk':this[_0x47a5('0x14')],'sugarcrm':this[_0x47a5('0x16')],'zoho':this[_0x47a5('0x17')],'desk':this[_0x47a5('0x18')],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0x47a5('0x1d')],'freshsales':this[_0x47a5('0x1b')],'servicenow':this['servicenowAccounts']};ami['on'](_0x47a5('0x1e'),this[_0x47a5('0x1f')][_0x47a5('0x20')](this));ami['on']('custom:agentconnect',this[_0x47a5('0x1f')][_0x47a5('0x20')](this));ami['on'](_0x47a5('0x21'),this[_0x47a5('0x1f')]['bind'](this));ami['on'](_0x47a5('0x22'),this[_0x47a5('0x1f')]['bind'](this));ami['on'](_0x47a5('0x23'),this[_0x47a5('0x1f')][_0x47a5('0x20')](this));ami['on'](_0x47a5('0x24'),this[_0x47a5('0x1f')]['bind'](this));ami['on']('custom:agentbusy',this[_0x47a5('0x1f')]['bind'](this));ami['on'](_0x47a5('0x25'),this['syncCustomEvent'][_0x47a5('0x20')](this));ami['on'](_0x47a5('0x26'),this[_0x47a5('0x1f')][_0x47a5('0x20')](this));ami['on'](_0x47a5('0x27'),this[_0x47a5('0x1f')][_0x47a5('0x20')](this));ami['on'](_0x47a5('0x28'),this[_0x47a5('0x1f')][_0x47a5('0x20')](this));ami['on'](_0x47a5('0x29'),this[_0x47a5('0x1f')][_0x47a5('0x20')](this));ami['on']('custom:dialbegin',this[_0x47a5('0x2a')]['bind'](this));ami['on'](_0x47a5('0x2b'),this[_0x47a5('0x2a')][_0x47a5('0x20')](this));ami['on']('custom:dialend',this[_0x47a5('0x2a')][_0x47a5('0x20')](this));ami['on'](_0x47a5('0x2c'),this[_0x47a5('0x1f')]['bind'](this));ami['on']('custom:closedinteraction',this[_0x47a5('0x1f')][_0x47a5('0x20')](this));ami['on']('custom:substatus',this['syncCustomEvent'][_0x47a5('0x20')](this));ami['on'](_0x47a5('0x2d'),this['syncCustomEvent'][_0x47a5('0x20')](this));ami['on']('custom:outgoingmessage',this[_0x47a5('0x1f')][_0x47a5('0x20')](this));ami['on']('custom:acceptmessage',this['syncCustomEvent'][_0x47a5('0x20')](this));ami['on']('custom:rejectmessage',this[_0x47a5('0x1f')][_0x47a5('0x20')](this));ami['on'](_0x47a5('0x2e'),this['syncCustomEvent'][_0x47a5('0x20')](this));}Trigger['prototype']['emit']=function(_0x65542e,_0x5a8a7c,_0x25cce0){logger['info'](_0x65542e,_0x5a8a7c,JSON[_0x47a5('0x2f')](_0x25cce0));io['to'](_0x65542e)[_0x47a5('0x30')](_0x5a8a7c,_0x25cce0);};Trigger[_0x47a5('0x31')][_0x47a5('0x1f')]=function(_0x36add5){var _0xed6320=_[_0x47a5('0x32')](_0x36add5);if(typeof _0xed6320[_0x47a5('0x33')]===_0x47a5('0x34')){_0xed6320['motionChannel']=_0x47a5('0x35');}this[_0x47a5('0x36')](_0xed6320);};Trigger['prototype'][_0x47a5('0x2a')]=function(_0x2bf53d){if(this[_0x47a5('0xf')][_0x2bf53d['interface']]){this[_0x47a5('0x1f')](_0x2bf53d);}};Trigger[_0x47a5('0x31')]['checkTriggers']=function(_0x2ebba0){var _0x19218a;for(var _0x54ae35 in this['triggers']){if(this['triggers'][_0x47a5('0x37')](_0x54ae35)){if(this['triggers'][_0x54ae35][_0x47a5('0x38')]){_0x19218a=this[_0x47a5('0x39')](this[_0x47a5('0xe')][_0x54ae35],_0x2ebba0);if(_0x19218a){_[_0x47a5('0x3a')](_0x2ebba0,_0x2ebba0[_0x47a5('0x3b')]);for(var _0xcb5243=0x0,_0x2003b0,_0x1f3d01,_0x3fa2a8;_0xcb5243<this[_0x47a5('0xe')][_0x54ae35][_0x47a5('0x3c')][_0x47a5('0x3d')];_0xcb5243+=0x1){_0x2003b0=this[_0x47a5('0xe')][_0x54ae35]['Actions'][_0xcb5243];if(this[_0x47a5('0xf')][_0x2ebba0[_0x47a5('0x3e')]]){switch(_0x2003b0[_0x47a5('0x3f')][_0x47a5('0x40')]()){case'contactmanager':break;case _0x47a5('0x41'):case'browser':var _0x47c7a2={};switch(barAndWebActions[_0x2003b0['data1']]){case'popup':_0x47c7a2[_0x47a5('0x42')]=_0x2003b0['data2'];_0x47c7a2[_0x47a5('0x43')]=this[_0x47a5('0x11')][_0x2003b0[_0x47a5('0x44')]]?Mustache['render'](this[_0x47a5('0x11')][_0x2003b0[_0x47a5('0x44')]]['html'],_0x2ebba0):'template\x20not\x20found';break;case _0x47a5('0x2'):_0x47c7a2['uri']=this[_0x47a5('0x45')](_0x2003b0[_0x47a5('0x44')],_0x2ebba0,_[_0x47a5('0x46')](_0x2003b0[_0x47a5('0x47')])?!![]:parseInt(_0x2003b0[_0x47a5('0x47')],0xa));if(_[_0x47a5('0x46')](_0x2003b0[_0x47a5('0x48')])){_0x47c7a2[_0x47a5('0x49')]='0';}else{_0x47c7a2[_0x47a5('0x4a')]=_0x2003b0[_0x47a5('0x48')];_0x47c7a2[_0x47a5('0x4b')]=_[_0x47a5('0x46')](_0x2003b0[_0x47a5('0x4c')])?_0x47a5('0x4d'):_0x2003b0[_0x47a5('0x4c')];_0x47c7a2[_0x47a5('0x4e')]=_['isNil'](_0x2003b0[_0x47a5('0x4f')])?_0x47a5('0x50'):_0x2003b0['data6'];}break;case'winapp':_0x47c7a2[_0x47a5('0x51')]=_0x2003b0['data2']?Mustache[_0x47a5('0x52')](_0x2003b0[_0x47a5('0x44')],_0x2ebba0):'';_0x47c7a2['winArguments']=_0x2003b0['data3']?Mustache[_0x47a5('0x52')](_0x2003b0['data3'],_0x2ebba0):'';break;}this[_0x47a5('0x30')](util[_0x47a5('0x53')](_0x47a5('0x54'),this[_0x47a5('0xf')][_0x2ebba0[_0x47a5('0x3e')]][_0x47a5('0x55')]),util[_0x47a5('0x53')]('trigger:%s:%s',_0x2003b0['action'][_0x47a5('0x40')](),barAndWebActions[_0x2003b0[_0x47a5('0x56')]]),_[_0x47a5('0x3a')](_0x47c7a2,_0x2ebba0));break;case _0x47a5('0x57'):this[_0x47a5('0x30')](util[_0x47a5('0x53')](_0x47a5('0x54'),this['agents'][_0x2ebba0[_0x47a5('0x3e')]][_0x47a5('0x55')]),util[_0x47a5('0x53')]('trigger:%s',_0x2003b0[_0x47a5('0x3f')]['toLowerCase']()),_[_0x47a5('0x3a')]({'ProjectId':parseInt(_0x2003b0[_0x47a5('0x56')],0xa)},_0x2ebba0));break;default:this[_0x47a5('0x30')](util[_0x47a5('0x53')]('user:%s',this[_0x47a5('0xf')][_0x2ebba0[_0x47a5('0x3e')]][_0x47a5('0x55')]),util[_0x47a5('0x53')](_0x47a5('0x58'),_0x2003b0[_0x47a5('0x3f')][_0x47a5('0x40')]()),_['merge']({},_0x2003b0,_0x2ebba0));}}switch(_0x2003b0[_0x47a5('0x3f')][_0x47a5('0x40')]()){case _0x47a5('0x59'):cmContact[_0x47a5('0x5a')](this[_0x47a5('0xf')][_0x2ebba0[_0x47a5('0x3e')]],this['triggers'][_0x54ae35],_0x2003b0,_0x2ebba0);break;case _0x47a5('0x5b'):integration[_0x47a5('0x5a')](_0x2003b0,_0x2ebba0,this[_0x47a5('0x1c')],this['agents'][_0x2ebba0[_0x47a5('0x3e')]],this[_0x47a5('0x10')][_0x2ebba0[_0x47a5('0x5c')]],this['voiceExtensions'][_0x2ebba0['routeId']]);break;case _0x47a5('0x5d'):urlforward[_0x47a5('0x5a')](_0x2003b0,_0x2ebba0);break;case'script':script['exec'](_0x2003b0,_0x2ebba0);break;}}}}}}};Trigger[_0x47a5('0x31')]['buildUri']=function(_0x16bb8a,_0x5d383d,_0x482de6){var _0x389ed9=url[_0x47a5('0x5e')](Mustache['render'](_0x16bb8a,_0x5d383d),!![]);if(_0x482de6){_[_0x47a5('0x3a')](_0x389ed9[_0x47a5('0x5f')],_0x5d383d);}delete _0x389ed9['search'];var _0x5b6127=url[_0x47a5('0x53')](_0x389ed9);_0x5b6127=_0x5b6127[_0x47a5('0x60')](/\/\?/g,'?');return _0x5b6127;};Trigger[_0x47a5('0x31')][_0x47a5('0x39')]=function(_0x5996c4,_0x199621){var _0x2b4255=!![];var _0x1af800=!![];var _0x5a33b8=![];if(_0x5996c4[_0x47a5('0x61')]===_0x199621['motionChannel']){_0x5a33b8=!![];}if(_0x5996c4[_0x47a5('0x62')][_0x47a5('0x3d')]){_0x2b4255=_[_0x47a5('0x63')](_0x5996c4[_0x47a5('0x62')],this[_0x47a5('0x64')](_0x199621,_0x5996c4['channel']));}if(_0x5996c4[_0x47a5('0x65')]['length']){_0x1af800=_['some'](_0x5996c4['AnyConditions'],this['checkConditions'](_0x199621,_0x5996c4[_0x47a5('0x61')]));}return _0x5a33b8&&_0x2b4255&&_0x1af800;};Trigger[_0x47a5('0x31')][_0x47a5('0x64')]=function(_0x52e3ee,_0x4d3db1){return function(_0x139229){switch(_0x139229[_0x47a5('0x66')]){case _0x47a5('0x67'):if(_0x52e3ee[_0x47a5('0x61')]===_0x4d3db1){if(_0x4d3db1===_0x47a5('0x68')){return _0x52e3ee['ChatWebsiteId']?operators[_0x139229[_0x47a5('0x69')]](Number(_0x139229['value']),_0x52e3ee[_0x47a5('0x6a')]):![];}else{return _0x52e3ee[_[_0x47a5('0x6b')](_0x4d3db1)+'AccountId']?operators[_0x139229[_0x47a5('0x69')]](Number(_0x139229[_0x47a5('0x6c')]),_0x52e3ee[_[_0x47a5('0x6b')](_0x4d3db1)+_0x47a5('0x6d')]):![];}}break;case _0x47a5('0x6e'):case _0x47a5('0x6f'):if(_0x52e3ee[_0x47a5('0x61')]===_0x4d3db1){return _0x52e3ee[_0x47a5('0x70')]?operators[_0x139229['operator']](_0x139229[_0x47a5('0x6c')],_0x52e3ee[_0x47a5('0x70')]):![];}break;case _0x47a5('0x5c'):return _0x52e3ee[_0x47a5('0x5c')]?operators[_0x139229[_0x47a5('0x69')]](_0x139229['value'],_0x52e3ee[_0x47a5('0x5c')]):![];case _0x47a5('0x71'):return _0x52e3ee[_0x47a5('0x72')]?operators[_0x139229[_0x47a5('0x69')]](_0x139229[_0x47a5('0x6c')],_0x52e3ee[_0x47a5('0x72')]):![];case _0x47a5('0x73'):return _0x52e3ee[_0x47a5('0x73')]?operators[_0x139229[_0x47a5('0x69')]](_0x139229[_0x47a5('0x6c')],_0x52e3ee[_0x47a5('0x73')]):![];case _0x47a5('0x74'):return _0x52e3ee[_0x47a5('0x74')]?operators[_0x139229[_0x47a5('0x69')]](_0x139229[_0x47a5('0x6c')],_0x52e3ee['routeId']):![];case _0x47a5('0x75'):if(_0x139229[_0x47a5('0x6c')]===_0x47a5('0x76'))_0x139229['value']=null;return typeof _0x52e3ee[_0x47a5('0x77')]!==_0x47a5('0x34')?operators[_0x139229[_0x47a5('0x69')]](_0x139229[_0x47a5('0x6c')],_0x52e3ee['substatus']):![];case _0x47a5('0x78'):if(_0x52e3ee['channel']===_0x4d3db1){return _0x139229[_0x47a5('0x6c')]==='created'&&_0x139229[_0x47a5('0x69')]==='equals'?!![]:![];}break;}return![];};};module[_0x47a5('0x79')]=Trigger;