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 _0x59ac=['trigger','../ami','redis','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','syncCustomEvent','custom:agentconnect','bind','custom:agentringnoanswer','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:queuecallerabandon','syncAgentDial','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:offlineMessage','prototype','stringify','emit','clone','motionChannel','undefined','voice','checkTriggers','hasOwnProperty','status','checkTrigger','Actions','interface','contactmanager','browser','data1','TemplateId','data2','render','html','template\x20not\x20found','uri','data3','data4','location','uriLocation','windowWidth','data5','800','windowHeight','data6','600','winApplication','winArguments','format','name','trigger:%s:%s','action','toLowerCase','merge','user:%s','trigger:%s','exec','integration','queue','routeId','urlforward','parse','search','replace','channel','AllConditions','length','every','AnyConditions','some','checkConditions','field','account','ChatWebsiteId','operator','value','upperFirst','AccountId','message','event','agent','membername','lastevent','mailSubstatus','substatus','offlineMessage','created','exports','util','lodash','url','mustache','ioredis','./integration','./cmContact','../../../config/environment','../../../config/logger'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x59ac,0x73));var _0xc59a=function(_0x40c849,_0xbc22a1){_0x40c849=_0x40c849-0x0;var _0x7d3bef=_0x59ac[_0x40c849];return _0x7d3bef;};'use strict';var util=require(_0xc59a('0x0'));var _=require(_0xc59a('0x1'));var url=require(_0xc59a('0x2'));var Mustache=require(_0xc59a('0x3'));var Redis=require(_0xc59a('0x4'));var urlforward=require('./urlforward');var integration=require(_0xc59a('0x5'));var cmContact=require(_0xc59a('0x6'));var script=require('./script');var config=require(_0xc59a('0x7'));var logger=require(_0xc59a('0x8'))(_0xc59a('0x9'));var ami=require(_0xc59a('0xa'));config[_0xc59a('0xb')]=_['defaults'](config[_0xc59a('0xb')],{'host':'localhost','port':0x18eb});var io=require(_0xc59a('0xc'))(new Redis(config['redis']));var operators={'equals':function(_0x447241,_0x511698){return _0x447241==_0x511698;},'not_equals':function(_0x3ba5c0,_0x4aa035){return _0x3ba5c0!=_0x4aa035;}};var barAndWebActions=[_0xc59a('0xd'),'url',_0xc59a('0xe')];function Trigger(_0x5aeadc){this[_0xc59a('0xf')]=_0x5aeadc[_0xc59a('0xf')];this[_0xc59a('0x10')]=_0x5aeadc['agents'];this[_0xc59a('0x11')]=_0x5aeadc[_0xc59a('0x11')];this[_0xc59a('0x12')]=_0x5aeadc['templates'];this[_0xc59a('0x13')]=_0x5aeadc['voiceExtensions'];this[_0xc59a('0x14')]=_0x5aeadc[_0xc59a('0x14')];this[_0xc59a('0x15')]=_0x5aeadc[_0xc59a('0x15')];this[_0xc59a('0x16')]=_0x5aeadc[_0xc59a('0x16')];this[_0xc59a('0x17')]=_0x5aeadc[_0xc59a('0x17')];this[_0xc59a('0x18')]=_0x5aeadc[_0xc59a('0x18')];this[_0xc59a('0x19')]=_0x5aeadc[_0xc59a('0x19')];this[_0xc59a('0x1a')]=_0x5aeadc[_0xc59a('0x1a')];this[_0xc59a('0x1b')]=_0x5aeadc[_0xc59a('0x1b')];this[_0xc59a('0x1c')]=_0x5aeadc[_0xc59a('0x1c')];this[_0xc59a('0x1d')]=_0x5aeadc[_0xc59a('0x1d')];this[_0xc59a('0x1e')]={'zendesk':this['zendeskAccounts'],'salesforce':this[_0xc59a('0x16')],'freshdesk':this[_0xc59a('0x15')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this[_0xc59a('0x18')],'desk':this[_0xc59a('0x19')],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0xc59a('0x1c')],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0xc59a('0x1b')]};ami['on']('custom:agentcalled',this[_0xc59a('0x1f')]['bind'](this));ami['on'](_0xc59a('0x20'),this[_0xc59a('0x1f')][_0xc59a('0x21')](this));ami['on'](_0xc59a('0x22'),this[_0xc59a('0x1f')][_0xc59a('0x21')](this));ami['on']('custom:agentcomplete',this[_0xc59a('0x1f')][_0xc59a('0x21')](this));ami['on'](_0xc59a('0x23'),this[_0xc59a('0x1f')][_0xc59a('0x21')](this));ami['on'](_0xc59a('0x24'),this['syncCustomEvent'][_0xc59a('0x21')](this));ami['on'](_0xc59a('0x25'),this[_0xc59a('0x1f')][_0xc59a('0x21')](this));ami['on'](_0xc59a('0x26'),this[_0xc59a('0x1f')]['bind'](this));ami['on'](_0xc59a('0x27'),this[_0xc59a('0x1f')][_0xc59a('0x21')](this));ami['on']('custom:amd',this[_0xc59a('0x1f')][_0xc59a('0x21')](this));ami['on'](_0xc59a('0x28'),this[_0xc59a('0x1f')]['bind'](this));ami['on']('custom:timeout',this['syncCustomEvent'][_0xc59a('0x21')](this));ami['on']('custom:dialbegin',this[_0xc59a('0x29')][_0xc59a('0x21')](this));ami['on']('custom:dialconnect',this[_0xc59a('0x29')][_0xc59a('0x21')](this));ami['on'](_0xc59a('0x2a'),this[_0xc59a('0x29')][_0xc59a('0x21')](this));ami['on'](_0xc59a('0x2b'),this[_0xc59a('0x1f')][_0xc59a('0x21')](this));ami['on'](_0xc59a('0x2c'),this['syncCustomEvent'][_0xc59a('0x21')](this));ami['on'](_0xc59a('0x2d'),this['syncCustomEvent'][_0xc59a('0x21')](this));ami['on'](_0xc59a('0x2e'),this[_0xc59a('0x1f')]['bind'](this));ami['on'](_0xc59a('0x2f'),this[_0xc59a('0x1f')][_0xc59a('0x21')](this));ami['on'](_0xc59a('0x30'),this[_0xc59a('0x1f')]['bind'](this));ami['on']('custom:rejectmessage',this[_0xc59a('0x1f')][_0xc59a('0x21')](this));ami['on'](_0xc59a('0x31'),this[_0xc59a('0x1f')][_0xc59a('0x21')](this));}Trigger[_0xc59a('0x32')]['emit']=function(_0x54e63c,_0x4d7b1c,_0x521140){logger['info'](_0x54e63c,_0x4d7b1c,JSON[_0xc59a('0x33')](_0x521140));io['to'](_0x54e63c)[_0xc59a('0x34')](_0x4d7b1c,_0x521140);};Trigger[_0xc59a('0x32')][_0xc59a('0x1f')]=function(_0x48c412){var _0x494c69=_[_0xc59a('0x35')](_0x48c412);if(typeof _0x494c69[_0xc59a('0x36')]===_0xc59a('0x37')){_0x494c69[_0xc59a('0x36')]=_0xc59a('0x38');}this[_0xc59a('0x39')](_0x494c69);};Trigger['prototype'][_0xc59a('0x29')]=function(_0x19d0f1){if(this[_0xc59a('0x10')][_0x19d0f1['interface']]){this['syncCustomEvent'](_0x19d0f1);}};Trigger[_0xc59a('0x32')][_0xc59a('0x39')]=function(_0x4dc4c3){var _0x3bfabf;for(var _0x13c79b in this[_0xc59a('0xf')]){if(this[_0xc59a('0xf')][_0xc59a('0x3a')](_0x13c79b)){if(this[_0xc59a('0xf')][_0x13c79b][_0xc59a('0x3b')]){_0x3bfabf=this[_0xc59a('0x3c')](this[_0xc59a('0xf')][_0x13c79b],_0x4dc4c3);if(_0x3bfabf){_['merge'](_0x4dc4c3,_0x4dc4c3['variables']);for(var _0x279f46=0x0,_0x3c3259,_0x1a123e,_0x54affa;_0x279f46<this[_0xc59a('0xf')][_0x13c79b]['Actions']['length'];_0x279f46+=0x1){_0x3c3259=this[_0xc59a('0xf')][_0x13c79b][_0xc59a('0x3d')][_0x279f46];if(this[_0xc59a('0x10')][_0x4dc4c3[_0xc59a('0x3e')]]){switch(_0x3c3259['action']['toLowerCase']()){case _0xc59a('0x3f'):break;case'motionbar':case _0xc59a('0x40'):var _0xd153b={};switch(barAndWebActions[_0x3c3259[_0xc59a('0x41')]]){case'popup':_0xd153b[_0xc59a('0x42')]=_0x3c3259[_0xc59a('0x43')];_0xd153b['html']=this[_0xc59a('0x12')][_0x3c3259['data2']]?Mustache[_0xc59a('0x44')](this[_0xc59a('0x12')][_0x3c3259[_0xc59a('0x43')]][_0xc59a('0x45')],_0x4dc4c3):_0xc59a('0x46');break;case'url':_0xd153b[_0xc59a('0x47')]=this['buildUri'](_0x3c3259[_0xc59a('0x43')],_0x4dc4c3,_['isNil'](_0x3c3259[_0xc59a('0x48')])?!![]:parseInt(_0x3c3259['data3'],0xa));if(_['isNil'](_0x3c3259[_0xc59a('0x49')])){_0xd153b[_0xc59a('0x4a')]='0';}else{_0xd153b[_0xc59a('0x4b')]=_0x3c3259[_0xc59a('0x49')];_0xd153b[_0xc59a('0x4c')]=_['isNil'](_0x3c3259[_0xc59a('0x4d')])?_0xc59a('0x4e'):_0x3c3259[_0xc59a('0x4d')];_0xd153b[_0xc59a('0x4f')]=_['isNil'](_0x3c3259[_0xc59a('0x50')])?_0xc59a('0x51'):_0x3c3259[_0xc59a('0x50')];}break;case _0xc59a('0xe'):_0xd153b[_0xc59a('0x52')]=_0x3c3259['data2']?Mustache[_0xc59a('0x44')](_0x3c3259[_0xc59a('0x43')],_0x4dc4c3):'';_0xd153b[_0xc59a('0x53')]=_0x3c3259[_0xc59a('0x48')]?Mustache[_0xc59a('0x44')](_0x3c3259[_0xc59a('0x48')],_0x4dc4c3):'';break;}this[_0xc59a('0x34')](util[_0xc59a('0x54')]('user:%s',this[_0xc59a('0x10')][_0x4dc4c3[_0xc59a('0x3e')]][_0xc59a('0x55')]),util[_0xc59a('0x54')](_0xc59a('0x56'),_0x3c3259[_0xc59a('0x57')][_0xc59a('0x58')](),barAndWebActions[_0x3c3259[_0xc59a('0x41')]]),_[_0xc59a('0x59')](_0xd153b,_0x4dc4c3));break;case'jscripty':this[_0xc59a('0x34')](util[_0xc59a('0x54')](_0xc59a('0x5a'),this[_0xc59a('0x10')][_0x4dc4c3[_0xc59a('0x3e')]]['name']),util[_0xc59a('0x54')](_0xc59a('0x5b'),_0x3c3259[_0xc59a('0x57')]['toLowerCase']()),_[_0xc59a('0x59')]({'ProjectId':parseInt(_0x3c3259[_0xc59a('0x41')],0xa)},_0x4dc4c3));break;default:this[_0xc59a('0x34')](util[_0xc59a('0x54')](_0xc59a('0x5a'),this[_0xc59a('0x10')][_0x4dc4c3[_0xc59a('0x3e')]][_0xc59a('0x55')]),util['format']('trigger:%s',_0x3c3259[_0xc59a('0x57')][_0xc59a('0x58')]()),_['merge']({},_0x3c3259,_0x4dc4c3));}}switch(_0x3c3259[_0xc59a('0x57')][_0xc59a('0x58')]()){case _0xc59a('0x3f'):cmContact[_0xc59a('0x5c')](this[_0xc59a('0x10')][_0x4dc4c3['interface']],this[_0xc59a('0xf')][_0x13c79b],_0x3c3259,_0x4dc4c3);break;case _0xc59a('0x5d'):integration[_0xc59a('0x5c')](_0x3c3259,_0x4dc4c3,this[_0xc59a('0x1e')],this['agents'][_0x4dc4c3[_0xc59a('0x3e')]],this[_0xc59a('0x11')][_0x4dc4c3[_0xc59a('0x5e')]],this[_0xc59a('0x13')][_0x4dc4c3[_0xc59a('0x5f')]]);break;case _0xc59a('0x60'):urlforward[_0xc59a('0x5c')](_0x3c3259,_0x4dc4c3);break;case'script':script[_0xc59a('0x5c')](_0x3c3259,_0x4dc4c3);break;}}}}}}};Trigger[_0xc59a('0x32')]['buildUri']=function(_0x80d1d1,_0xc4f25,_0x3266a6){var _0x22d091=url[_0xc59a('0x61')](Mustache[_0xc59a('0x44')](_0x80d1d1,_0xc4f25),!![]);if(_0x3266a6){_[_0xc59a('0x59')](_0x22d091['query'],_0xc4f25);}delete _0x22d091[_0xc59a('0x62')];var _0x587a4c=url[_0xc59a('0x54')](_0x22d091);_0x587a4c=_0x587a4c[_0xc59a('0x63')](/\/\?/g,'?');return _0x587a4c;};Trigger[_0xc59a('0x32')][_0xc59a('0x3c')]=function(_0xae795c,_0x28fb51){var _0x2b1331=!![];var _0x3faafc=!![];var _0xc851ed=![];if(_0xae795c[_0xc59a('0x64')]===_0x28fb51[_0xc59a('0x36')]){_0xc851ed=!![];}if(_0xae795c[_0xc59a('0x65')][_0xc59a('0x66')]){_0x2b1331=_[_0xc59a('0x67')](_0xae795c[_0xc59a('0x65')],this['checkConditions'](_0x28fb51,_0xae795c[_0xc59a('0x64')]));}if(_0xae795c[_0xc59a('0x68')][_0xc59a('0x66')]){_0x3faafc=_[_0xc59a('0x69')](_0xae795c[_0xc59a('0x68')],this[_0xc59a('0x6a')](_0x28fb51,_0xae795c['channel']));}return _0xc851ed&&_0x2b1331&&_0x3faafc;};Trigger[_0xc59a('0x32')][_0xc59a('0x6a')]=function(_0x3b1aa9,_0x5dd29){return function(_0x5cbbd5){switch(_0x5cbbd5[_0xc59a('0x6b')]){case _0xc59a('0x6c'):if(_0x3b1aa9['channel']===_0x5dd29){if(_0x5dd29==='chat'){return _0x3b1aa9[_0xc59a('0x6d')]?operators[_0x5cbbd5[_0xc59a('0x6e')]](Number(_0x5cbbd5[_0xc59a('0x6f')]),_0x3b1aa9[_0xc59a('0x6d')]):![];}else{return _0x3b1aa9[_[_0xc59a('0x70')](_0x5dd29)+_0xc59a('0x71')]?operators[_0x5cbbd5[_0xc59a('0x6e')]](Number(_0x5cbbd5['value']),_0x3b1aa9[_[_0xc59a('0x70')](_0x5dd29)+_0xc59a('0x71')]):![];}}break;case'interaction':case _0xc59a('0x72'):if(_0x3b1aa9[_0xc59a('0x64')]===_0x5dd29){return _0x3b1aa9[_0xc59a('0x73')]?operators[_0x5cbbd5[_0xc59a('0x6e')]](_0x5cbbd5[_0xc59a('0x6f')],_0x3b1aa9[_0xc59a('0x73')]):![];}break;case _0xc59a('0x5e'):return _0x3b1aa9[_0xc59a('0x5e')]?operators[_0x5cbbd5[_0xc59a('0x6e')]](_0x5cbbd5[_0xc59a('0x6f')],_0x3b1aa9['queue']):![];case _0xc59a('0x74'):return _0x3b1aa9[_0xc59a('0x75')]?operators[_0x5cbbd5[_0xc59a('0x6e')]](_0x5cbbd5[_0xc59a('0x6f')],_0x3b1aa9[_0xc59a('0x75')]):![];case _0xc59a('0x76'):return _0x3b1aa9[_0xc59a('0x76')]?operators[_0x5cbbd5[_0xc59a('0x6e')]](_0x5cbbd5[_0xc59a('0x6f')],_0x3b1aa9[_0xc59a('0x76')]):![];case'routeId':return _0x3b1aa9[_0xc59a('0x5f')]?operators[_0x5cbbd5['operator']](_0x5cbbd5[_0xc59a('0x6f')],_0x3b1aa9['routeId']):![];case _0xc59a('0x77'):if(_0x5cbbd5['value']==='null')_0x5cbbd5[_0xc59a('0x6f')]=null;return typeof _0x3b1aa9['substatus']!==_0xc59a('0x37')?operators[_0x5cbbd5[_0xc59a('0x6e')]](_0x5cbbd5['value'],_0x3b1aa9[_0xc59a('0x78')]):![];case _0xc59a('0x79'):if(_0x3b1aa9[_0xc59a('0x64')]===_0x5dd29){return _0x5cbbd5[_0xc59a('0x6f')]===_0xc59a('0x7a')&&_0x5cbbd5['operator']==='equals'?!![]:![];}break;}return![];};};module[_0xc59a('0x7b')]=Trigger;