Built motion from commit d5e4af8c.|2.6.23
[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 _0xb04a=['debug','inspect','interface','status','merge','variables','Actions','length','action','toLowerCase','contactmanager','motionbar','browser','TemplateId','data2','html','render','template\x20not\x20found','uri','buildUri','data3','isNil','data4','location','uriLocation','windowWidth','data5','800','data6','600','winApplication','format','trigger:%s:%s','data1','jscripty','user:%s','name','trigger:%s','exec','integration','queue','urlforward','query','search','replace','checkTrigger','channel','AllConditions','checkConditions','AnyConditions','some','checkTrigger:\x20trigger','field','account','chat','ChatWebsiteId','operator','value','AccountId','interaction','event','agent','membername','lastevent','routeId','mailSubstatus','null','substatus','exports','util','url','mustache','ioredis','./urlforward','./integration','../../../config/environment','../../../config/logger','trigger','redis','localhost','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','syncCustomEvent','bind','custom:agentconnect','custom:agentnosuchnumber','custom:agentnoanswer','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialend','custom:closedinteraction','custom:substatus','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','emit','stringify','prototype','motionChannel','undefined','voice'];(function(_0x20d08e,_0x4cc575){var _0x2cbd12=function(_0x3de355){while(--_0x3de355){_0x20d08e['push'](_0x20d08e['shift']());}};_0x2cbd12(++_0x4cc575);}(_0xb04a,0xbb));var _0xab04=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xb04a[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0xab04('0x0'));var _=require('lodash');var url=require(_0xab04('0x1'));var Mustache=require(_0xab04('0x2'));var Redis=require(_0xab04('0x3'));var urlforward=require(_0xab04('0x4'));var integration=require(_0xab04('0x5'));var cmContact=require('./cmContact');var script=require('./script');var config=require(_0xab04('0x6'));var logger=require(_0xab04('0x7'))(_0xab04('0x8'));var ami=require('../ami');config['redis']=_['defaults'](config[_0xab04('0x9')],{'host':_0xab04('0xa'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xab04('0x9')]));var operators={'equals':function(_0xc2ab48,_0x4ce7e7){return _0xc2ab48==_0x4ce7e7;},'not_equals':function(_0x113e70,_0x46267a){return _0x113e70!=_0x46267a;}};var barAndWebActions=[_0xab04('0xb'),_0xab04('0x1'),_0xab04('0xc')];function Trigger(_0xc8130e){this[_0xab04('0xd')]=_0xc8130e[_0xab04('0xd')];this[_0xab04('0xe')]=_0xc8130e[_0xab04('0xe')];this[_0xab04('0xf')]=_0xc8130e[_0xab04('0xf')];this['templates']=_0xc8130e[_0xab04('0x10')];this[_0xab04('0x11')]=_0xc8130e['voiceExtensions'];this[_0xab04('0x12')]=_0xc8130e[_0xab04('0x12')];this[_0xab04('0x13')]=_0xc8130e['freshdeskAccounts'];this[_0xab04('0x14')]=_0xc8130e[_0xab04('0x14')];this[_0xab04('0x15')]=_0xc8130e['sugarcrmAccounts'];this[_0xab04('0x16')]=_0xc8130e[_0xab04('0x16')];this['deskAccounts']=_0xc8130e[_0xab04('0x17')];this[_0xab04('0x18')]=_0xc8130e[_0xab04('0x18')];this[_0xab04('0x19')]=_0xc8130e[_0xab04('0x19')];this[_0xab04('0x1a')]=_0xc8130e[_0xab04('0x1a')];this[_0xab04('0x1b')]=_0xc8130e[_0xab04('0x1b')];this[_0xab04('0x1c')]={'zendesk':this[_0xab04('0x12')],'salesforce':this[_0xab04('0x14')],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0xab04('0x15')],'zoho':this[_0xab04('0x16')],'desk':this['deskAccounts'],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0xab04('0x1a')],'freshsales':this[_0xab04('0x1b')],'servicenow':this['servicenowAccounts']};ami['on']('custom:agentcalled',this[_0xab04('0x1d')][_0xab04('0x1e')](this));ami['on'](_0xab04('0x1f'),this[_0xab04('0x1d')]['bind'](this));ami['on']('custom:agentringnoanswer',this[_0xab04('0x1d')][_0xab04('0x1e')](this));ami['on']('custom:agentcomplete',this['syncCustomEvent'][_0xab04('0x1e')](this));ami['on'](_0xab04('0x20'),this[_0xab04('0x1d')][_0xab04('0x1e')](this));ami['on'](_0xab04('0x21'),this[_0xab04('0x1d')][_0xab04('0x1e')](this));ami['on']('custom:agentbusy',this[_0xab04('0x1d')]['bind'](this));ami['on']('custom:agentcongestion',this[_0xab04('0x1d')][_0xab04('0x1e')](this));ami['on']('custom:agentreject',this['syncCustomEvent'][_0xab04('0x1e')](this));ami['on']('custom:amd',this[_0xab04('0x1d')][_0xab04('0x1e')](this));ami['on']('custom:queuecallerabandon',this[_0xab04('0x1d')][_0xab04('0x1e')](this));ami['on'](_0xab04('0x22'),this['syncCustomEvent'][_0xab04('0x1e')](this));ami['on'](_0xab04('0x23'),this[_0xab04('0x24')][_0xab04('0x1e')](this));ami['on']('custom:dialconnect',this[_0xab04('0x24')]['bind'](this));ami['on'](_0xab04('0x25'),this['syncAgentDial'][_0xab04('0x1e')](this));ami['on']('custom:newinteraction',this[_0xab04('0x1d')]['bind'](this));ami['on'](_0xab04('0x26'),this['syncCustomEvent']['bind'](this));ami['on'](_0xab04('0x27'),this['syncCustomEvent'][_0xab04('0x1e')](this));ami['on']('custom:incomingmessage',this[_0xab04('0x1d')][_0xab04('0x1e')](this));ami['on']('custom:outgoingmessage',this[_0xab04('0x1d')][_0xab04('0x1e')](this));ami['on'](_0xab04('0x28'),this[_0xab04('0x1d')]['bind'](this));ami['on'](_0xab04('0x29'),this[_0xab04('0x1d')][_0xab04('0x1e')](this));ami['on'](_0xab04('0x2a'),this[_0xab04('0x1d')][_0xab04('0x1e')](this));}Trigger['prototype'][_0xab04('0x2b')]=function(_0x144da2,_0x118ac7,_0x221928){logger['info'](_0x144da2,_0x118ac7,JSON[_0xab04('0x2c')](_0x221928));io['to'](_0x144da2)[_0xab04('0x2b')](_0x118ac7,_0x221928);};Trigger[_0xab04('0x2d')][_0xab04('0x1d')]=function(_0x5ab30a){var _0x11fad5=_['clone'](_0x5ab30a);if(typeof _0x11fad5[_0xab04('0x2e')]===_0xab04('0x2f')){_0x11fad5[_0xab04('0x2e')]=_0xab04('0x30');}logger[_0xab04('0x31')](_0xab04('0x1d'),util[_0xab04('0x32')](_0x11fad5,{'showHidden':!![],'depth':null}));this['checkTriggers'](_0x11fad5);};Trigger[_0xab04('0x2d')][_0xab04('0x24')]=function(_0x2e1fc2){if(this[_0xab04('0xe')][_0x2e1fc2[_0xab04('0x33')]]){this[_0xab04('0x1d')](_0x2e1fc2);}};Trigger[_0xab04('0x2d')]['checkTriggers']=function(_0x3f4a88){var _0x2da78;for(var _0x1b8bea in this[_0xab04('0xd')]){if(this['triggers']['hasOwnProperty'](_0x1b8bea)){if(this[_0xab04('0xd')][_0x1b8bea][_0xab04('0x34')]){_0x2da78=this['checkTrigger'](this['triggers'][_0x1b8bea],_0x3f4a88);if(_0x2da78){_[_0xab04('0x35')](_0x3f4a88,_0x3f4a88[_0xab04('0x36')]);for(var _0x390128=0x0,_0x36128d,_0xc8cac7,_0x37b7cb;_0x390128<this[_0xab04('0xd')][_0x1b8bea][_0xab04('0x37')][_0xab04('0x38')];_0x390128+=0x1){_0x36128d=this[_0xab04('0xd')][_0x1b8bea][_0xab04('0x37')][_0x390128];if(this[_0xab04('0xe')][_0x3f4a88[_0xab04('0x33')]]){switch(_0x36128d[_0xab04('0x39')][_0xab04('0x3a')]()){case _0xab04('0x3b'):break;case _0xab04('0x3c'):case _0xab04('0x3d'):var _0x47c693={};switch(barAndWebActions[_0x36128d['data1']]){case _0xab04('0xb'):_0x47c693[_0xab04('0x3e')]=_0x36128d[_0xab04('0x3f')];_0x47c693[_0xab04('0x40')]=this[_0xab04('0x10')][_0x36128d['data2']]?Mustache[_0xab04('0x41')](this[_0xab04('0x10')][_0x36128d[_0xab04('0x3f')]][_0xab04('0x40')],_0x3f4a88):_0xab04('0x42');break;case _0xab04('0x1'):_0x47c693[_0xab04('0x43')]=this[_0xab04('0x44')](_0x36128d[_0xab04('0x3f')],_0x3f4a88,_['isNil'](_0x36128d['data3'])?!![]:parseInt(_0x36128d[_0xab04('0x45')],0xa));if(_[_0xab04('0x46')](_0x36128d[_0xab04('0x47')])){_0x47c693[_0xab04('0x48')]='0';}else{_0x47c693[_0xab04('0x49')]=_0x36128d[_0xab04('0x47')];_0x47c693[_0xab04('0x4a')]=_[_0xab04('0x46')](_0x36128d[_0xab04('0x4b')])?_0xab04('0x4c'):_0x36128d[_0xab04('0x4b')];_0x47c693['windowHeight']=_['isNil'](_0x36128d[_0xab04('0x4d')])?_0xab04('0x4e'):_0x36128d[_0xab04('0x4d')];}break;case'winapp':_0x47c693[_0xab04('0x4f')]=_0x36128d[_0xab04('0x3f')]?Mustache['render'](_0x36128d[_0xab04('0x3f')],_0x3f4a88):'';_0x47c693['winArguments']=_0x36128d[_0xab04('0x45')]?Mustache['render'](_0x36128d['data3'],_0x3f4a88):'';break;}this[_0xab04('0x2b')](util['format']('user:%s',this[_0xab04('0xe')][_0x3f4a88[_0xab04('0x33')]]['name']),util[_0xab04('0x50')](_0xab04('0x51'),_0x36128d[_0xab04('0x39')]['toLowerCase'](),barAndWebActions[_0x36128d[_0xab04('0x52')]]),_['merge'](_0x47c693,_0x3f4a88));break;case _0xab04('0x53'):this[_0xab04('0x2b')](util[_0xab04('0x50')](_0xab04('0x54'),this[_0xab04('0xe')][_0x3f4a88[_0xab04('0x33')]][_0xab04('0x55')]),util[_0xab04('0x50')](_0xab04('0x56'),_0x36128d[_0xab04('0x39')][_0xab04('0x3a')]()),_[_0xab04('0x35')]({'ProjectId':parseInt(_0x36128d[_0xab04('0x52')],0xa)},_0x3f4a88));break;default:this[_0xab04('0x2b')](util[_0xab04('0x50')]('user:%s',this[_0xab04('0xe')][_0x3f4a88['interface']]['name']),util[_0xab04('0x50')]('trigger:%s',_0x36128d[_0xab04('0x39')]['toLowerCase']()),_[_0xab04('0x35')]({},_0x36128d,_0x3f4a88));}}switch(_0x36128d[_0xab04('0x39')][_0xab04('0x3a')]()){case'contactmanager':cmContact[_0xab04('0x57')](this[_0xab04('0xe')][_0x3f4a88['interface']],this[_0xab04('0xd')][_0x1b8bea],_0x36128d,_0x3f4a88);break;case _0xab04('0x58'):integration[_0xab04('0x57')](_0x36128d,_0x3f4a88,this[_0xab04('0x1c')],this[_0xab04('0xe')][_0x3f4a88[_0xab04('0x33')]],this[_0xab04('0xf')][_0x3f4a88[_0xab04('0x59')]],this[_0xab04('0x11')][_0x3f4a88['routeId']]);break;case _0xab04('0x5a'):urlforward[_0xab04('0x57')](_0x36128d,_0x3f4a88);break;case'script':script[_0xab04('0x57')](_0x36128d,_0x3f4a88);break;}}}}}}};Trigger['prototype'][_0xab04('0x44')]=function(_0x3c6f02,_0x3ca8b7,_0x28419a){var _0x48359b=url['parse'](Mustache[_0xab04('0x41')](_0x3c6f02,_0x3ca8b7),!![]);if(_0x28419a){_[_0xab04('0x35')](_0x48359b[_0xab04('0x5b')],_0x3ca8b7);}delete _0x48359b[_0xab04('0x5c')];var _0x35cbda=url['format'](_0x48359b);_0x35cbda=_0x35cbda[_0xab04('0x5d')](/\/\?/g,'?');return _0x35cbda;};Trigger[_0xab04('0x2d')][_0xab04('0x5e')]=function(_0x7b1dad,_0x12246c){var _0x309a73=!![];var _0x5457c1=!![];var _0x5e43b7=![];if(_0x7b1dad[_0xab04('0x5f')]===_0x12246c[_0xab04('0x2e')]){_0x5e43b7=!![];}if(_0x7b1dad[_0xab04('0x60')][_0xab04('0x38')]){_0x309a73=_['every'](_0x7b1dad[_0xab04('0x60')],this[_0xab04('0x61')](_0x12246c,_0x7b1dad[_0xab04('0x5f')]));}if(_0x7b1dad[_0xab04('0x62')][_0xab04('0x38')]){_0x5457c1=_[_0xab04('0x63')](_0x7b1dad['AnyConditions'],this[_0xab04('0x61')](_0x12246c,_0x7b1dad['channel']));}var _0x22a114=_0x5e43b7&&_0x309a73&&_0x5457c1;logger['debug'](_0xab04('0x64'),util[_0xab04('0x32')](_0x7b1dad,{'showHidden':!![],'depth':null}),'evt',util['inspect'](_0x12246c,{'showHidden':!![],'depth':null}),_0x5e43b7,_0x309a73,_0x5457c1);return _0x22a114;};Trigger[_0xab04('0x2d')]['checkConditions']=function(_0x3ee7ed,_0x3dccad){return function(_0x29c7a8){switch(_0x29c7a8[_0xab04('0x65')]){case _0xab04('0x66'):if(_0x3ee7ed['channel']===_0x3dccad){if(_0x3dccad===_0xab04('0x67')){return _0x3ee7ed[_0xab04('0x68')]?operators[_0x29c7a8[_0xab04('0x69')]](Number(_0x29c7a8['value']),_0x3ee7ed[_0xab04('0x68')]):![];}else{return _0x3ee7ed[_['upperFirst'](_0x3dccad)+'AccountId']?operators[_0x29c7a8[_0xab04('0x69')]](Number(_0x29c7a8[_0xab04('0x6a')]),_0x3ee7ed[_['upperFirst'](_0x3dccad)+_0xab04('0x6b')]):![];}}break;case _0xab04('0x6c'):case'message':if(_0x3ee7ed[_0xab04('0x5f')]===_0x3dccad){return _0x3ee7ed[_0xab04('0x6d')]?operators[_0x29c7a8[_0xab04('0x69')]](_0x29c7a8[_0xab04('0x6a')],_0x3ee7ed[_0xab04('0x6d')]):![];}break;case _0xab04('0x59'):return _0x3ee7ed[_0xab04('0x59')]?operators[_0x29c7a8[_0xab04('0x69')]](_0x29c7a8[_0xab04('0x6a')],_0x3ee7ed[_0xab04('0x59')]):![];case _0xab04('0x6e'):return _0x3ee7ed[_0xab04('0x6f')]?operators[_0x29c7a8[_0xab04('0x69')]](_0x29c7a8['value'],_0x3ee7ed[_0xab04('0x6f')]):![];case'lastevent':return _0x3ee7ed[_0xab04('0x70')]?operators[_0x29c7a8['operator']](_0x29c7a8[_0xab04('0x6a')],_0x3ee7ed['lastevent']):![];case _0xab04('0x71'):return _0x3ee7ed[_0xab04('0x71')]?operators[_0x29c7a8[_0xab04('0x69')]](_0x29c7a8[_0xab04('0x6a')],_0x3ee7ed[_0xab04('0x71')]):![];case _0xab04('0x72'):if(_0x29c7a8[_0xab04('0x6a')]===_0xab04('0x73'))_0x29c7a8[_0xab04('0x6a')]=null;return typeof _0x3ee7ed[_0xab04('0x74')]!==_0xab04('0x2f')?operators[_0x29c7a8[_0xab04('0x69')]](_0x29c7a8[_0xab04('0x6a')],_0x3ee7ed[_0xab04('0x74')]):![];case'offlineMessage':if(_0x3ee7ed[_0xab04('0x5f')]===_0x3dccad){return _0x29c7a8[_0xab04('0x6a')]==='created'&&_0x29c7a8[_0xab04('0x69')]==='equals'?!![]:![];}break;}return![];};};module[_0xab04('0x75')]=Trigger;