45322ec0629ece794581a7b0d48ecf135de69497
[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 _0xdb6a=['./urlforward','./cmContact','./script','../../../config/environment','trigger','../ami','localhost','socket.io-emitter','redis','popup','url','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','custom:agentconnect','bind','custom:agentcomplete','custom:agentnosuchnumber','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:offlineMessage','emit','info','stringify','clone','motionChannel','undefined','voice','debug','inspect','checkTriggers','prototype','interface','hasOwnProperty','status','checkTrigger','variables','Actions','action','toLowerCase','motionbar','browser','data1','data2','render','html','uri','buildUri','isNil','data3','data4','uriLocation','windowWidth','data5','800','600','winArguments','format','user:%s','name','trigger:%s:%s','merge','jscripty','trigger:%s','integration','exec','routeId','urlforward','script','parse','search','channel','AllConditions','length','every','checkConditions','AnyConditions','some','checkTrigger:\x20trigger','evt','field','account','operator','value','upperFirst','AccountId','interaction','message','event','queue','agent','membername','lastevent','mailSubstatus','null','substatus','created','equals','exports','util','lodash'];(function(_0x5491ae,_0x34891d){var _0x40d220=function(_0x27f184){while(--_0x27f184){_0x5491ae['push'](_0x5491ae['shift']());}};_0x40d220(++_0x34891d);}(_0xdb6a,0x102));var _0xadb6=function(_0x320fe2,_0x2c76de){_0x320fe2=_0x320fe2-0x0;var _0x48668b=_0xdb6a[_0x320fe2];return _0x48668b;};'use strict';var util=require(_0xadb6('0x0'));var _=require(_0xadb6('0x1'));var url=require('url');var Mustache=require('mustache');var Redis=require('ioredis');var urlforward=require(_0xadb6('0x2'));var integration=require('./integration');var cmContact=require(_0xadb6('0x3'));var script=require(_0xadb6('0x4'));var config=require(_0xadb6('0x5'));var logger=require('../../../config/logger')(_0xadb6('0x6'));var ami=require(_0xadb6('0x7'));config['redis']=_['defaults'](config['redis'],{'host':_0xadb6('0x8'),'port':0x18eb});var io=require(_0xadb6('0x9'))(new Redis(config[_0xadb6('0xa')]));var operators={'equals':function(_0xb37c84,_0x4251da){return _0xb37c84==_0x4251da;},'not_equals':function(_0x1decab,_0x1c8f54){return _0x1decab!=_0x1c8f54;}};var barAndWebActions=[_0xadb6('0xb'),_0xadb6('0xc'),_0xadb6('0xd')];function Trigger(_0x47bbd8){this['triggers']=_0x47bbd8[_0xadb6('0xe')];this[_0xadb6('0xf')]=_0x47bbd8[_0xadb6('0xf')];this[_0xadb6('0x10')]=_0x47bbd8['voiceQueues'];this['templates']=_0x47bbd8[_0xadb6('0x11')];this[_0xadb6('0x12')]=_0x47bbd8['voiceExtensions'];this[_0xadb6('0x13')]=_0x47bbd8[_0xadb6('0x13')];this[_0xadb6('0x14')]=_0x47bbd8[_0xadb6('0x14')];this[_0xadb6('0x15')]=_0x47bbd8[_0xadb6('0x15')];this[_0xadb6('0x16')]=_0x47bbd8['sugarcrmAccounts'];this[_0xadb6('0x17')]=_0x47bbd8[_0xadb6('0x17')];this['deskAccounts']=_0x47bbd8[_0xadb6('0x18')];this[_0xadb6('0x19')]=_0x47bbd8[_0xadb6('0x19')];this['servicenowAccounts']=_0x47bbd8[_0xadb6('0x1a')];this['dynamics365Accounts']=_0x47bbd8[_0xadb6('0x1b')];this[_0xadb6('0x1c')]=_0x47bbd8[_0xadb6('0x1c')];this[_0xadb6('0x1d')]={'zendesk':this[_0xadb6('0x13')],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0xadb6('0x14')],'sugarcrm':this[_0xadb6('0x16')],'zoho':this['zohoAccounts'],'desk':this['deskAccounts'],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0xadb6('0x1b')],'freshsales':this[_0xadb6('0x1c')],'servicenow':this['servicenowAccounts']};ami['on'](_0xadb6('0x1e'),this[_0xadb6('0x1f')]['bind'](this));ami['on'](_0xadb6('0x20'),this[_0xadb6('0x1f')][_0xadb6('0x21')](this));ami['on']('custom:agentringnoanswer',this[_0xadb6('0x1f')][_0xadb6('0x21')](this));ami['on'](_0xadb6('0x22'),this[_0xadb6('0x1f')][_0xadb6('0x21')](this));ami['on'](_0xadb6('0x23'),this[_0xadb6('0x1f')][_0xadb6('0x21')](this));ami['on']('custom:agentnoanswer',this[_0xadb6('0x1f')]['bind'](this));ami['on'](_0xadb6('0x24'),this[_0xadb6('0x1f')][_0xadb6('0x21')](this));ami['on'](_0xadb6('0x25'),this['syncCustomEvent'][_0xadb6('0x21')](this));ami['on'](_0xadb6('0x26'),this[_0xadb6('0x1f')]['bind'](this));ami['on'](_0xadb6('0x27'),this[_0xadb6('0x1f')][_0xadb6('0x21')](this));ami['on'](_0xadb6('0x28'),this[_0xadb6('0x1f')][_0xadb6('0x21')](this));ami['on'](_0xadb6('0x29'),this['syncCustomEvent'][_0xadb6('0x21')](this));ami['on'](_0xadb6('0x2a'),this[_0xadb6('0x2b')][_0xadb6('0x21')](this));ami['on'](_0xadb6('0x2c'),this[_0xadb6('0x2b')][_0xadb6('0x21')](this));ami['on']('custom:dialend',this[_0xadb6('0x2b')][_0xadb6('0x21')](this));ami['on'](_0xadb6('0x2d'),this['syncCustomEvent']['bind'](this));ami['on'](_0xadb6('0x2e'),this['syncCustomEvent'][_0xadb6('0x21')](this));ami['on'](_0xadb6('0x2f'),this['syncCustomEvent'][_0xadb6('0x21')](this));ami['on'](_0xadb6('0x30'),this[_0xadb6('0x1f')][_0xadb6('0x21')](this));ami['on'](_0xadb6('0x31'),this['syncCustomEvent'][_0xadb6('0x21')](this));ami['on'](_0xadb6('0x32'),this[_0xadb6('0x1f')][_0xadb6('0x21')](this));ami['on']('custom:rejectmessage',this['syncCustomEvent'][_0xadb6('0x21')](this));ami['on'](_0xadb6('0x33'),this[_0xadb6('0x1f')][_0xadb6('0x21')](this));}Trigger['prototype'][_0xadb6('0x34')]=function(_0x11e865,_0x4287c,_0x4942dc){logger[_0xadb6('0x35')](_0x11e865,_0x4287c,JSON[_0xadb6('0x36')](_0x4942dc));io['to'](_0x11e865)['emit'](_0x4287c,_0x4942dc);};Trigger['prototype'][_0xadb6('0x1f')]=function(_0x1ea6f2){var _0x3da85f=_[_0xadb6('0x37')](_0x1ea6f2);if(typeof _0x3da85f[_0xadb6('0x38')]===_0xadb6('0x39')){_0x3da85f[_0xadb6('0x38')]=_0xadb6('0x3a');}logger[_0xadb6('0x3b')](_0xadb6('0x1f'),util[_0xadb6('0x3c')](_0x3da85f,{'showHidden':!![],'depth':null}));this[_0xadb6('0x3d')](_0x3da85f);};Trigger[_0xadb6('0x3e')][_0xadb6('0x2b')]=function(_0x2dcddf){if(this[_0xadb6('0xf')][_0x2dcddf[_0xadb6('0x3f')]]){this['syncCustomEvent'](_0x2dcddf);}};Trigger['prototype']['checkTriggers']=function(_0x131d0f){var _0x23ae9e;for(var _0x12cf8d in this[_0xadb6('0xe')]){if(this[_0xadb6('0xe')][_0xadb6('0x40')](_0x12cf8d)){if(this[_0xadb6('0xe')][_0x12cf8d][_0xadb6('0x41')]){_0x23ae9e=this[_0xadb6('0x42')](this['triggers'][_0x12cf8d],_0x131d0f);if(_0x23ae9e){_['merge'](_0x131d0f,_0x131d0f[_0xadb6('0x43')]);for(var _0x155c3b=0x0,_0x541091,_0x53a47d,_0xf5dcea;_0x155c3b<this[_0xadb6('0xe')][_0x12cf8d][_0xadb6('0x44')]['length'];_0x155c3b+=0x1){_0x541091=this['triggers'][_0x12cf8d][_0xadb6('0x44')][_0x155c3b];if(this[_0xadb6('0xf')][_0x131d0f['interface']]){switch(_0x541091[_0xadb6('0x45')][_0xadb6('0x46')]()){case'contactmanager':break;case _0xadb6('0x47'):case _0xadb6('0x48'):var _0x226dd9={};switch(barAndWebActions[_0x541091[_0xadb6('0x49')]]){case _0xadb6('0xb'):_0x226dd9['TemplateId']=_0x541091[_0xadb6('0x4a')];_0x226dd9['html']=this[_0xadb6('0x11')][_0x541091[_0xadb6('0x4a')]]?Mustache[_0xadb6('0x4b')](this[_0xadb6('0x11')][_0x541091[_0xadb6('0x4a')]][_0xadb6('0x4c')],_0x131d0f):'template\x20not\x20found';break;case'url':_0x226dd9[_0xadb6('0x4d')]=this[_0xadb6('0x4e')](_0x541091[_0xadb6('0x4a')],_0x131d0f,_[_0xadb6('0x4f')](_0x541091[_0xadb6('0x50')])?!![]:parseInt(_0x541091[_0xadb6('0x50')],0xa));if(_[_0xadb6('0x4f')](_0x541091[_0xadb6('0x51')])){_0x226dd9['location']='0';}else{_0x226dd9[_0xadb6('0x52')]=_0x541091[_0xadb6('0x51')];_0x226dd9[_0xadb6('0x53')]=_[_0xadb6('0x4f')](_0x541091[_0xadb6('0x54')])?_0xadb6('0x55'):_0x541091[_0xadb6('0x54')];_0x226dd9['windowHeight']=_['isNil'](_0x541091['data6'])?_0xadb6('0x56'):_0x541091['data6'];}break;case _0xadb6('0xd'):_0x226dd9['winApplication']=_0x541091['data2']?Mustache[_0xadb6('0x4b')](_0x541091['data2'],_0x131d0f):'';_0x226dd9[_0xadb6('0x57')]=_0x541091[_0xadb6('0x50')]?Mustache['render'](_0x541091[_0xadb6('0x50')],_0x131d0f):'';break;}this[_0xadb6('0x34')](util[_0xadb6('0x58')](_0xadb6('0x59'),this[_0xadb6('0xf')][_0x131d0f['interface']][_0xadb6('0x5a')]),util[_0xadb6('0x58')](_0xadb6('0x5b'),_0x541091[_0xadb6('0x45')][_0xadb6('0x46')](),barAndWebActions[_0x541091[_0xadb6('0x49')]]),_[_0xadb6('0x5c')](_0x226dd9,_0x131d0f));break;case _0xadb6('0x5d'):this[_0xadb6('0x34')](util[_0xadb6('0x58')](_0xadb6('0x59'),this['agents'][_0x131d0f['interface']][_0xadb6('0x5a')]),util[_0xadb6('0x58')](_0xadb6('0x5e'),_0x541091[_0xadb6('0x45')][_0xadb6('0x46')]()),_[_0xadb6('0x5c')]({'ProjectId':parseInt(_0x541091[_0xadb6('0x49')],0xa)},_0x131d0f));break;default:this[_0xadb6('0x34')](util[_0xadb6('0x58')](_0xadb6('0x59'),this['agents'][_0x131d0f[_0xadb6('0x3f')]][_0xadb6('0x5a')]),util[_0xadb6('0x58')](_0xadb6('0x5e'),_0x541091[_0xadb6('0x45')][_0xadb6('0x46')]()),_['merge']({},_0x541091,_0x131d0f));}}switch(_0x541091[_0xadb6('0x45')]['toLowerCase']()){case'contactmanager':cmContact['exec'](this[_0xadb6('0xf')][_0x131d0f[_0xadb6('0x3f')]],this['triggers'][_0x12cf8d],_0x541091,_0x131d0f);break;case _0xadb6('0x5f'):integration[_0xadb6('0x60')](_0x541091,_0x131d0f,this['accounts'],this[_0xadb6('0xf')][_0x131d0f['interface']],this[_0xadb6('0x10')][_0x131d0f['queue']],this['voiceExtensions'][_0x131d0f[_0xadb6('0x61')]]);break;case _0xadb6('0x62'):urlforward[_0xadb6('0x60')](_0x541091,_0x131d0f);break;case _0xadb6('0x63'):script[_0xadb6('0x60')](_0x541091,_0x131d0f);break;}}}}}}};Trigger[_0xadb6('0x3e')]['buildUri']=function(_0x373eed,_0x432449,_0x52ec71){var _0x3282a1=url[_0xadb6('0x64')](Mustache['render'](_0x373eed,_0x432449),!![]);if(_0x52ec71){_[_0xadb6('0x5c')](_0x3282a1['query'],_0x432449);}delete _0x3282a1[_0xadb6('0x65')];var _0x304ec2=url[_0xadb6('0x58')](_0x3282a1);_0x304ec2=_0x304ec2['replace'](/\/\?/g,'?');return _0x304ec2;};Trigger['prototype'][_0xadb6('0x42')]=function(_0x50901f,_0x2e3552){var _0x1288b0=!![];var _0x839e88=!![];var _0x364cb0=![];if(_0x50901f[_0xadb6('0x66')]===_0x2e3552['motionChannel']){_0x364cb0=!![];}if(_0x50901f[_0xadb6('0x67')][_0xadb6('0x68')]){_0x1288b0=_[_0xadb6('0x69')](_0x50901f[_0xadb6('0x67')],this[_0xadb6('0x6a')](_0x2e3552,_0x50901f['channel']));}if(_0x50901f[_0xadb6('0x6b')][_0xadb6('0x68')]){_0x839e88=_[_0xadb6('0x6c')](_0x50901f[_0xadb6('0x6b')],this[_0xadb6('0x6a')](_0x2e3552,_0x50901f[_0xadb6('0x66')]));}var _0x55107b=_0x364cb0&&_0x1288b0&&_0x839e88;logger[_0xadb6('0x3b')](_0xadb6('0x6d'),util[_0xadb6('0x3c')](_0x50901f,{'showHidden':!![],'depth':null}),_0xadb6('0x6e'),util[_0xadb6('0x3c')](_0x2e3552,{'showHidden':!![],'depth':null}),_0x364cb0,_0x1288b0,_0x839e88);return _0x55107b;};Trigger[_0xadb6('0x3e')][_0xadb6('0x6a')]=function(_0x4592a8,_0x472aed){return function(_0xeb2ea5){switch(_0xeb2ea5[_0xadb6('0x6f')]){case _0xadb6('0x70'):if(_0x4592a8[_0xadb6('0x66')]===_0x472aed){if(_0x472aed==='chat'){return _0x4592a8['ChatWebsiteId']?operators[_0xeb2ea5[_0xadb6('0x71')]](Number(_0xeb2ea5[_0xadb6('0x72')]),_0x4592a8['ChatWebsiteId']):![];}else{return _0x4592a8[_[_0xadb6('0x73')](_0x472aed)+_0xadb6('0x74')]?operators[_0xeb2ea5[_0xadb6('0x71')]](Number(_0xeb2ea5[_0xadb6('0x72')]),_0x4592a8[_['upperFirst'](_0x472aed)+_0xadb6('0x74')]):![];}}break;case _0xadb6('0x75'):case _0xadb6('0x76'):if(_0x4592a8[_0xadb6('0x66')]===_0x472aed){return _0x4592a8[_0xadb6('0x77')]?operators[_0xeb2ea5[_0xadb6('0x71')]](_0xeb2ea5[_0xadb6('0x72')],_0x4592a8['event']):![];}break;case _0xadb6('0x78'):return _0x4592a8[_0xadb6('0x78')]?operators[_0xeb2ea5[_0xadb6('0x71')]](_0xeb2ea5[_0xadb6('0x72')],_0x4592a8[_0xadb6('0x78')]):![];case _0xadb6('0x79'):return _0x4592a8[_0xadb6('0x7a')]?operators[_0xeb2ea5[_0xadb6('0x71')]](_0xeb2ea5['value'],_0x4592a8['membername']):![];case _0xadb6('0x7b'):return _0x4592a8['lastevent']?operators[_0xeb2ea5[_0xadb6('0x71')]](_0xeb2ea5[_0xadb6('0x72')],_0x4592a8[_0xadb6('0x7b')]):![];case _0xadb6('0x61'):return _0x4592a8[_0xadb6('0x61')]?operators[_0xeb2ea5[_0xadb6('0x71')]](_0xeb2ea5['value'],_0x4592a8[_0xadb6('0x61')]):![];case _0xadb6('0x7c'):if(_0xeb2ea5[_0xadb6('0x72')]===_0xadb6('0x7d'))_0xeb2ea5['value']=null;return typeof _0x4592a8[_0xadb6('0x7e')]!==_0xadb6('0x39')?operators[_0xeb2ea5[_0xadb6('0x71')]](_0xeb2ea5['value'],_0x4592a8[_0xadb6('0x7e')]):![];case'offlineMessage':if(_0x4592a8[_0xadb6('0x66')]===_0x472aed){return _0xeb2ea5[_0xadb6('0x72')]===_0xadb6('0x7f')&&_0xeb2ea5[_0xadb6('0x71')]===_0xadb6('0x80')?!![]:![];}break;}return![];};};module[_0xadb6('0x81')]=Trigger;