Built motion from commit 9d0783e6.|2.6.13
[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 _0x8946=['account','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','interaction','message','event','agent','membername','lastevent','routeId','mailSubstatus','substatus','created','equals','exports','util','lodash','url','mustache','./cmContact','../../../config/environment','../../../config/logger','trigger','../ami','redis','defaults','localhost','socket.io-emitter','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:dialbegin','custom:dialconnect','syncAgentDial','custom:dialend','custom:closedinteraction','custom:incomingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','prototype','emit','info','clone','undefined','motionChannel','voice','inspect','checkTriggers','interface','hasOwnProperty','status','checkTrigger','merge','variables','Actions','length','toLowerCase','motionbar','data1','TemplateId','data2','html','uri','isNil','data3','location','uriLocation','data4','windowWidth','data5','windowHeight','data6','600','render','format','user:%s','name','trigger:%s:%s','action','contactmanager','exec','integration','queue','urlforward','script','buildUri','search','every','AllConditions','checkConditions','channel','AnyConditions','some','debug','checkTrigger:\x20trigger','evt','field'];(function(_0x1b339c,_0x15a981){var _0x5c6c0b=function(_0x1077cd){while(--_0x1077cd){_0x1b339c['push'](_0x1b339c['shift']());}};_0x5c6c0b(++_0x15a981);}(_0x8946,0x193));var _0x6894=function(_0x2112d4,_0x3c863c){_0x2112d4=_0x2112d4-0x0;var _0x434972=_0x8946[_0x2112d4];return _0x434972;};'use strict';var util=require(_0x6894('0x0'));var _=require(_0x6894('0x1'));var url=require(_0x6894('0x2'));var Mustache=require(_0x6894('0x3'));var Redis=require('ioredis');var urlforward=require('./urlforward');var integration=require('./integration');var cmContact=require(_0x6894('0x4'));var script=require('./script');var config=require(_0x6894('0x5'));var logger=require(_0x6894('0x6'))(_0x6894('0x7'));var ami=require(_0x6894('0x8'));config[_0x6894('0x9')]=_[_0x6894('0xa')](config[_0x6894('0x9')],{'host':_0x6894('0xb'),'port':0x18eb});var io=require(_0x6894('0xc'))(new Redis(config['redis']));var operators={'equals':function(_0x1e71e8,_0x114ef2){return _0x1e71e8==_0x114ef2;},'not_equals':function(_0x29dc51,_0x1da585){return _0x29dc51!=_0x1da585;}};var barAndWebActions=['popup',_0x6894('0x2'),_0x6894('0xd')];function Trigger(_0x202610){this['triggers']=_0x202610[_0x6894('0xe')];this['agents']=_0x202610[_0x6894('0xf')];this[_0x6894('0x10')]=_0x202610[_0x6894('0x10')];this[_0x6894('0x11')]=_0x202610[_0x6894('0x11')];this[_0x6894('0x12')]=_0x202610['voiceExtensions'];this['zendeskAccounts']=_0x202610[_0x6894('0x13')];this[_0x6894('0x14')]=_0x202610[_0x6894('0x14')];this[_0x6894('0x15')]=_0x202610[_0x6894('0x15')];this['sugarcrmAccounts']=_0x202610[_0x6894('0x16')];this[_0x6894('0x17')]=_0x202610[_0x6894('0x17')];this[_0x6894('0x18')]=_0x202610[_0x6894('0x18')];this[_0x6894('0x19')]=_0x202610['vtigerAccounts'];this[_0x6894('0x1a')]=_0x202610[_0x6894('0x1a')];this[_0x6894('0x1b')]=_0x202610[_0x6894('0x1b')];this['freshsalesAccounts']=_0x202610[_0x6894('0x1c')];this[_0x6894('0x1d')]={'zendesk':this[_0x6894('0x13')],'salesforce':this[_0x6894('0x15')],'freshdesk':this[_0x6894('0x14')],'sugarcrm':this[_0x6894('0x16')],'zoho':this[_0x6894('0x17')],'desk':this[_0x6894('0x18')],'vtiger':this[_0x6894('0x19')],'dynamics365':this[_0x6894('0x1b')],'freshsales':this[_0x6894('0x1c')],'servicenow':this[_0x6894('0x1a')]};ami['on'](_0x6894('0x1e'),this[_0x6894('0x1f')][_0x6894('0x20')](this));ami['on'](_0x6894('0x21'),this[_0x6894('0x1f')][_0x6894('0x20')](this));ami['on'](_0x6894('0x22'),this[_0x6894('0x1f')][_0x6894('0x20')](this));ami['on']('custom:agentcomplete',this[_0x6894('0x1f')][_0x6894('0x20')](this));ami['on'](_0x6894('0x23'),this['syncCustomEvent']['bind'](this));ami['on'](_0x6894('0x24'),this['syncCustomEvent']['bind'](this));ami['on'](_0x6894('0x25'),this[_0x6894('0x1f')][_0x6894('0x20')](this));ami['on'](_0x6894('0x26'),this[_0x6894('0x1f')]['bind'](this));ami['on'](_0x6894('0x27'),this[_0x6894('0x1f')][_0x6894('0x20')](this));ami['on'](_0x6894('0x28'),this[_0x6894('0x1f')][_0x6894('0x20')](this));ami['on'](_0x6894('0x29'),this['syncCustomEvent']['bind'](this));ami['on']('custom:timeout',this['syncCustomEvent'][_0x6894('0x20')](this));ami['on'](_0x6894('0x2a'),this['syncAgentDial'][_0x6894('0x20')](this));ami['on'](_0x6894('0x2b'),this[_0x6894('0x2c')][_0x6894('0x20')](this));ami['on'](_0x6894('0x2d'),this[_0x6894('0x2c')][_0x6894('0x20')](this));ami['on']('custom:newinteraction',this[_0x6894('0x1f')][_0x6894('0x20')](this));ami['on'](_0x6894('0x2e'),this[_0x6894('0x1f')][_0x6894('0x20')](this));ami['on']('custom:substatus',this[_0x6894('0x1f')][_0x6894('0x20')](this));ami['on'](_0x6894('0x2f'),this[_0x6894('0x1f')][_0x6894('0x20')](this));ami['on']('custom:outgoingmessage',this[_0x6894('0x1f')]['bind'](this));ami['on'](_0x6894('0x30'),this[_0x6894('0x1f')][_0x6894('0x20')](this));ami['on'](_0x6894('0x31'),this[_0x6894('0x1f')][_0x6894('0x20')](this));ami['on'](_0x6894('0x32'),this[_0x6894('0x1f')][_0x6894('0x20')](this));}Trigger[_0x6894('0x33')][_0x6894('0x34')]=function(_0x588f85,_0x1f722b,_0x363ddb){logger[_0x6894('0x35')](_0x588f85,_0x1f722b,JSON['stringify'](_0x363ddb));io['to'](_0x588f85)[_0x6894('0x34')](_0x1f722b,_0x363ddb);};Trigger[_0x6894('0x33')]['syncCustomEvent']=function(_0x4e8e98){var _0x34410d=_[_0x6894('0x36')](_0x4e8e98);if(typeof _0x34410d['motionChannel']===_0x6894('0x37')){_0x34410d[_0x6894('0x38')]=_0x6894('0x39');}logger['debug'](_0x6894('0x1f'),util[_0x6894('0x3a')](_0x34410d,{'showHidden':!![],'depth':null}));this[_0x6894('0x3b')](_0x34410d);};Trigger['prototype']['syncAgentDial']=function(_0x46044a){if(this['agents'][_0x46044a[_0x6894('0x3c')]]){this[_0x6894('0x1f')](_0x46044a);}};Trigger[_0x6894('0x33')][_0x6894('0x3b')]=function(_0x25b04c){var _0x4834c6;for(var _0x3fbd40 in this[_0x6894('0xe')]){if(this[_0x6894('0xe')][_0x6894('0x3d')](_0x3fbd40)){if(this[_0x6894('0xe')][_0x3fbd40][_0x6894('0x3e')]){_0x4834c6=this[_0x6894('0x3f')](this[_0x6894('0xe')][_0x3fbd40],_0x25b04c);if(_0x4834c6){_[_0x6894('0x40')](_0x25b04c,_0x25b04c[_0x6894('0x41')]);for(var _0x5e9224=0x0,_0x34f8ae,_0x238b86,_0x7e20d6;_0x5e9224<this[_0x6894('0xe')][_0x3fbd40][_0x6894('0x42')][_0x6894('0x43')];_0x5e9224+=0x1){_0x34f8ae=this['triggers'][_0x3fbd40]['Actions'][_0x5e9224];if(this[_0x6894('0xf')][_0x25b04c[_0x6894('0x3c')]]){switch(_0x34f8ae['action'][_0x6894('0x44')]()){case'contactmanager':break;case _0x6894('0x45'):case'browser':var _0x17b3cc={};switch(barAndWebActions[_0x34f8ae[_0x6894('0x46')]]){case'popup':_0x17b3cc[_0x6894('0x47')]=_0x34f8ae[_0x6894('0x48')];_0x17b3cc[_0x6894('0x49')]=this[_0x6894('0x11')][_0x34f8ae[_0x6894('0x48')]]?Mustache['render'](this[_0x6894('0x11')][_0x34f8ae[_0x6894('0x48')]][_0x6894('0x49')],_0x25b04c):'template\x20not\x20found';break;case _0x6894('0x2'):_0x17b3cc[_0x6894('0x4a')]=this['buildUri'](_0x34f8ae[_0x6894('0x48')],_0x25b04c,_[_0x6894('0x4b')](_0x34f8ae[_0x6894('0x4c')])?!![]:parseInt(_0x34f8ae[_0x6894('0x4c')],0xa));if(_['isNil'](_0x34f8ae['data4'])){_0x17b3cc[_0x6894('0x4d')]='0';}else{_0x17b3cc[_0x6894('0x4e')]=_0x34f8ae[_0x6894('0x4f')];_0x17b3cc[_0x6894('0x50')]=_[_0x6894('0x4b')](_0x34f8ae[_0x6894('0x51')])?'800':_0x34f8ae[_0x6894('0x51')];_0x17b3cc[_0x6894('0x52')]=_[_0x6894('0x4b')](_0x34f8ae[_0x6894('0x53')])?_0x6894('0x54'):_0x34f8ae[_0x6894('0x53')];}break;case'winapp':_0x17b3cc['winApplication']=_0x34f8ae[_0x6894('0x48')]?Mustache[_0x6894('0x55')](_0x34f8ae[_0x6894('0x48')],_0x25b04c):'';_0x17b3cc['winArguments']=_0x34f8ae[_0x6894('0x4c')]?Mustache[_0x6894('0x55')](_0x34f8ae[_0x6894('0x4c')],_0x25b04c):'';break;}this[_0x6894('0x34')](util[_0x6894('0x56')](_0x6894('0x57'),this[_0x6894('0xf')][_0x25b04c['interface']][_0x6894('0x58')]),util[_0x6894('0x56')](_0x6894('0x59'),_0x34f8ae[_0x6894('0x5a')][_0x6894('0x44')](),barAndWebActions[_0x34f8ae[_0x6894('0x46')]]),_[_0x6894('0x40')](_0x17b3cc,_0x25b04c));break;case'jscripty':this['emit'](util[_0x6894('0x56')](_0x6894('0x57'),this[_0x6894('0xf')][_0x25b04c['interface']][_0x6894('0x58')]),util[_0x6894('0x56')]('trigger:%s',_0x34f8ae[_0x6894('0x5a')]['toLowerCase']()),_['merge']({'ProjectId':parseInt(_0x34f8ae[_0x6894('0x46')],0xa)},_0x25b04c));break;default:this[_0x6894('0x34')](util['format'](_0x6894('0x57'),this[_0x6894('0xf')][_0x25b04c['interface']][_0x6894('0x58')]),util['format']('trigger:%s',_0x34f8ae[_0x6894('0x5a')]['toLowerCase']()),_[_0x6894('0x40')]({},_0x34f8ae,_0x25b04c));}}switch(_0x34f8ae[_0x6894('0x5a')][_0x6894('0x44')]()){case _0x6894('0x5b'):cmContact[_0x6894('0x5c')](this['agents'][_0x25b04c[_0x6894('0x3c')]],this[_0x6894('0xe')][_0x3fbd40],_0x34f8ae,_0x25b04c);break;case _0x6894('0x5d'):integration[_0x6894('0x5c')](_0x34f8ae,_0x25b04c,this[_0x6894('0x1d')],this['agents'][_0x25b04c[_0x6894('0x3c')]],this[_0x6894('0x10')][_0x25b04c[_0x6894('0x5e')]],this[_0x6894('0x12')][_0x25b04c['routeId']]);break;case _0x6894('0x5f'):urlforward[_0x6894('0x5c')](_0x34f8ae,_0x25b04c);break;case _0x6894('0x60'):script[_0x6894('0x5c')](_0x34f8ae,_0x25b04c);break;}}}}}}};Trigger['prototype'][_0x6894('0x61')]=function(_0x47812b,_0x533f49,_0x441a7f){var _0xcd7ea2=url['parse'](Mustache[_0x6894('0x55')](_0x47812b,_0x533f49),!![]);if(_0x441a7f){_[_0x6894('0x40')](_0xcd7ea2['query'],_0x533f49);}delete _0xcd7ea2[_0x6894('0x62')];var _0x44a9b9=url['format'](_0xcd7ea2);_0x44a9b9=_0x44a9b9['replace'](/\/\?/g,'?');return _0x44a9b9;};Trigger[_0x6894('0x33')][_0x6894('0x3f')]=function(_0x4bbd46,_0x91653d){var _0x36fec6=!![];var _0x5cf14b=!![];var _0x1dd5b9=![];if(_0x4bbd46['channel']===_0x91653d[_0x6894('0x38')]){_0x1dd5b9=!![];}if(_0x4bbd46['AllConditions'][_0x6894('0x43')]){_0x36fec6=_[_0x6894('0x63')](_0x4bbd46[_0x6894('0x64')],this[_0x6894('0x65')](_0x91653d,_0x4bbd46[_0x6894('0x66')]));}if(_0x4bbd46[_0x6894('0x67')][_0x6894('0x43')]){_0x5cf14b=_[_0x6894('0x68')](_0x4bbd46[_0x6894('0x67')],this['checkConditions'](_0x91653d,_0x4bbd46[_0x6894('0x66')]));}var _0x532924=_0x1dd5b9&&_0x36fec6&&_0x5cf14b;logger[_0x6894('0x69')](_0x6894('0x6a'),util['inspect'](_0x4bbd46,{'showHidden':!![],'depth':null}),_0x6894('0x6b'),util[_0x6894('0x3a')](_0x91653d,{'showHidden':!![],'depth':null}),_0x1dd5b9,_0x36fec6,_0x5cf14b);return _0x532924;};Trigger['prototype'][_0x6894('0x65')]=function(_0x29ee08,_0x567fc4){return function(_0x22e98e){switch(_0x22e98e[_0x6894('0x6c')]){case _0x6894('0x6d'):if(_0x29ee08[_0x6894('0x66')]===_0x567fc4){if(_0x567fc4===_0x6894('0x6e')){return _0x29ee08[_0x6894('0x6f')]?operators[_0x22e98e[_0x6894('0x70')]](Number(_0x22e98e[_0x6894('0x71')]),_0x29ee08[_0x6894('0x6f')]):![];}else{return _0x29ee08[_[_0x6894('0x72')](_0x567fc4)+_0x6894('0x73')]?operators[_0x22e98e[_0x6894('0x70')]](Number(_0x22e98e['value']),_0x29ee08[_[_0x6894('0x72')](_0x567fc4)+_0x6894('0x73')]):![];}}break;case _0x6894('0x74'):case _0x6894('0x75'):if(_0x29ee08[_0x6894('0x66')]===_0x567fc4){return _0x29ee08['event']?operators[_0x22e98e[_0x6894('0x70')]](_0x22e98e[_0x6894('0x71')],_0x29ee08[_0x6894('0x76')]):![];}break;case'queue':return _0x29ee08[_0x6894('0x5e')]?operators[_0x22e98e[_0x6894('0x70')]](_0x22e98e[_0x6894('0x71')],_0x29ee08[_0x6894('0x5e')]):![];case _0x6894('0x77'):return _0x29ee08[_0x6894('0x78')]?operators[_0x22e98e[_0x6894('0x70')]](_0x22e98e[_0x6894('0x71')],_0x29ee08[_0x6894('0x78')]):![];case'lastevent':return _0x29ee08[_0x6894('0x79')]?operators[_0x22e98e['operator']](_0x22e98e['value'],_0x29ee08[_0x6894('0x79')]):![];case'routeId':return _0x29ee08[_0x6894('0x7a')]?operators[_0x22e98e['operator']](_0x22e98e[_0x6894('0x71')],_0x29ee08['routeId']):![];case _0x6894('0x7b'):if(_0x22e98e[_0x6894('0x71')]==='null')_0x22e98e[_0x6894('0x71')]=null;return typeof _0x29ee08[_0x6894('0x7c')]!==_0x6894('0x37')?operators[_0x22e98e[_0x6894('0x70')]](_0x22e98e['value'],_0x29ee08[_0x6894('0x7c')]):![];case'offlineMessage':if(_0x29ee08[_0x6894('0x66')]===_0x567fc4){return _0x22e98e[_0x6894('0x71')]===_0x6894('0x7d')&&_0x22e98e['operator']===_0x6894('0x7e')?!![]:![];}break;}return![];};};module[_0x6894('0x7f')]=Trigger;