Built motion from commit 753c950e.|2.5.42
[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 _0x9a18=['account','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','interaction','message','event','agent','membername','lastevent','mailSubstatus','null','substatus','offlineMessage','equals','exports','util','url','mustache','ioredis','./urlforward','./integration','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','defaults','popup','winapp','triggers','agents','voiceQueues','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','syncCustomEvent','custom:agentconnect','bind','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','prototype','emit','stringify','clone','motionChannel','undefined','checkTriggers','interface','hasOwnProperty','status','merge','variables','Actions','contactmanager','motionbar','browser','data1','data2','html','templates','render','template\x20not\x20found','buildUri','isNil','data3','data4','location','uriLocation','windowWidth','data5','600','data6','winApplication','winArguments','format','user:%s','name','trigger:%s:%s','action','toLowerCase','exec','queue','routeId','urlforward','parse','query','search','checkTrigger','AllConditions','checkConditions','channel','AnyConditions','length','some'];(function(_0x378a48,_0x5b012f){var _0x1538c5=function(_0x372bcc){while(--_0x372bcc){_0x378a48['push'](_0x378a48['shift']());}};_0x1538c5(++_0x5b012f);}(_0x9a18,0x187));var _0x89a1=function(_0x32d58b,_0x3a8916){_0x32d58b=_0x32d58b-0x0;var _0x4d9dbc=_0x9a18[_0x32d58b];return _0x4d9dbc;};'use strict';var util=require(_0x89a1('0x0'));var _=require('lodash');var url=require(_0x89a1('0x1'));var Mustache=require(_0x89a1('0x2'));var Redis=require(_0x89a1('0x3'));var urlforward=require(_0x89a1('0x4'));var integration=require(_0x89a1('0x5'));var cmContact=require('./cmContact');var script=require(_0x89a1('0x6'));var config=require(_0x89a1('0x7'));var logger=require(_0x89a1('0x8'))(_0x89a1('0x9'));var ami=require(_0x89a1('0xa'));config[_0x89a1('0xb')]=_[_0x89a1('0xc')](config[_0x89a1('0xb')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x89a1('0xb')]));var operators={'equals':function(_0x4993c1,_0x751fb3){return _0x4993c1==_0x751fb3;},'not_equals':function(_0x541951,_0x3c7e38){return _0x541951!=_0x3c7e38;}};var barAndWebActions=[_0x89a1('0xd'),_0x89a1('0x1'),_0x89a1('0xe')];function Trigger(_0x25fef3){this[_0x89a1('0xf')]=_0x25fef3[_0x89a1('0xf')];this[_0x89a1('0x10')]=_0x25fef3[_0x89a1('0x10')];this[_0x89a1('0x11')]=_0x25fef3[_0x89a1('0x11')];this['templates']=_0x25fef3['templates'];this[_0x89a1('0x12')]=_0x25fef3[_0x89a1('0x12')];this[_0x89a1('0x13')]=_0x25fef3[_0x89a1('0x13')];this['freshdeskAccounts']=_0x25fef3[_0x89a1('0x14')];this[_0x89a1('0x15')]=_0x25fef3['salesforceAccounts'];this[_0x89a1('0x16')]=_0x25fef3[_0x89a1('0x16')];this[_0x89a1('0x17')]=_0x25fef3[_0x89a1('0x17')];this[_0x89a1('0x18')]=_0x25fef3[_0x89a1('0x18')];this[_0x89a1('0x19')]=_0x25fef3[_0x89a1('0x19')];this['servicenowAccounts']=_0x25fef3[_0x89a1('0x1a')];this[_0x89a1('0x1b')]=_0x25fef3[_0x89a1('0x1b')];this[_0x89a1('0x1c')]=_0x25fef3[_0x89a1('0x1c')];this['accounts']={'zendesk':this[_0x89a1('0x13')],'salesforce':this[_0x89a1('0x15')],'freshdesk':this[_0x89a1('0x14')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this[_0x89a1('0x17')],'desk':this[_0x89a1('0x18')],'vtiger':this[_0x89a1('0x19')],'dynamics365':this[_0x89a1('0x1b')],'freshsales':this[_0x89a1('0x1c')],'servicenow':this[_0x89a1('0x1a')]};ami['on']('custom:agentcalled',this[_0x89a1('0x1d')]['bind'](this));ami['on'](_0x89a1('0x1e'),this[_0x89a1('0x1d')][_0x89a1('0x1f')](this));ami['on']('custom:agentringnoanswer',this[_0x89a1('0x1d')][_0x89a1('0x1f')](this));ami['on'](_0x89a1('0x20'),this[_0x89a1('0x1d')][_0x89a1('0x1f')](this));ami['on'](_0x89a1('0x21'),this[_0x89a1('0x1d')][_0x89a1('0x1f')](this));ami['on'](_0x89a1('0x22'),this['syncCustomEvent']['bind'](this));ami['on'](_0x89a1('0x23'),this[_0x89a1('0x1d')][_0x89a1('0x1f')](this));ami['on'](_0x89a1('0x24'),this[_0x89a1('0x1d')]['bind'](this));ami['on'](_0x89a1('0x25'),this['syncCustomEvent']['bind'](this));ami['on'](_0x89a1('0x26'),this[_0x89a1('0x1d')][_0x89a1('0x1f')](this));ami['on'](_0x89a1('0x27'),this[_0x89a1('0x1d')][_0x89a1('0x1f')](this));ami['on'](_0x89a1('0x28'),this[_0x89a1('0x1d')][_0x89a1('0x1f')](this));ami['on']('custom:dialbegin',this[_0x89a1('0x29')][_0x89a1('0x1f')](this));ami['on'](_0x89a1('0x2a'),this[_0x89a1('0x29')][_0x89a1('0x1f')](this));ami['on'](_0x89a1('0x2b'),this[_0x89a1('0x29')]['bind'](this));ami['on'](_0x89a1('0x2c'),this[_0x89a1('0x1d')][_0x89a1('0x1f')](this));ami['on']('custom:closedinteraction',this[_0x89a1('0x1d')][_0x89a1('0x1f')](this));ami['on'](_0x89a1('0x2d'),this[_0x89a1('0x1d')][_0x89a1('0x1f')](this));ami['on'](_0x89a1('0x2e'),this[_0x89a1('0x1d')][_0x89a1('0x1f')](this));ami['on'](_0x89a1('0x2f'),this[_0x89a1('0x1d')][_0x89a1('0x1f')](this));ami['on'](_0x89a1('0x30'),this[_0x89a1('0x1d')][_0x89a1('0x1f')](this));ami['on'](_0x89a1('0x31'),this[_0x89a1('0x1d')][_0x89a1('0x1f')](this));ami['on'](_0x89a1('0x32'),this['syncCustomEvent'][_0x89a1('0x1f')](this));}Trigger[_0x89a1('0x33')][_0x89a1('0x34')]=function(_0x2b86dd,_0xb270d1,_0x2cf63f){logger['info'](_0x2b86dd,_0xb270d1,JSON[_0x89a1('0x35')](_0x2cf63f));io['to'](_0x2b86dd)[_0x89a1('0x34')](_0xb270d1,_0x2cf63f);};Trigger['prototype'][_0x89a1('0x1d')]=function(_0x52e779){var _0x435d95=_[_0x89a1('0x36')](_0x52e779);if(typeof _0x435d95[_0x89a1('0x37')]===_0x89a1('0x38')){_0x435d95[_0x89a1('0x37')]='voice';}this[_0x89a1('0x39')](_0x435d95);};Trigger[_0x89a1('0x33')][_0x89a1('0x29')]=function(_0x51118f){if(this[_0x89a1('0x10')][_0x51118f[_0x89a1('0x3a')]]){this[_0x89a1('0x1d')](_0x51118f);}};Trigger[_0x89a1('0x33')][_0x89a1('0x39')]=function(_0x315b40){var _0x270fe6;for(var _0x361c1b in this['triggers']){if(this['triggers'][_0x89a1('0x3b')](_0x361c1b)){if(this[_0x89a1('0xf')][_0x361c1b][_0x89a1('0x3c')]){_0x270fe6=this['checkTrigger'](this[_0x89a1('0xf')][_0x361c1b],_0x315b40);if(_0x270fe6){_[_0x89a1('0x3d')](_0x315b40,_0x315b40[_0x89a1('0x3e')]);for(var _0x357dee=0x0,_0x4c2247,_0x21b3d4,_0x702874;_0x357dee<this[_0x89a1('0xf')][_0x361c1b]['Actions']['length'];_0x357dee+=0x1){_0x4c2247=this[_0x89a1('0xf')][_0x361c1b][_0x89a1('0x3f')][_0x357dee];if(this[_0x89a1('0x10')][_0x315b40[_0x89a1('0x3a')]]){switch(_0x4c2247['action']['toLowerCase']()){case _0x89a1('0x40'):break;case _0x89a1('0x41'):case _0x89a1('0x42'):var _0x3cad82={};switch(barAndWebActions[_0x4c2247[_0x89a1('0x43')]]){case _0x89a1('0xd'):_0x3cad82['TemplateId']=_0x4c2247[_0x89a1('0x44')];_0x3cad82[_0x89a1('0x45')]=this[_0x89a1('0x46')][_0x4c2247[_0x89a1('0x44')]]?Mustache[_0x89a1('0x47')](this['templates'][_0x4c2247[_0x89a1('0x44')]][_0x89a1('0x45')],_0x315b40):_0x89a1('0x48');break;case _0x89a1('0x1'):_0x3cad82['uri']=this[_0x89a1('0x49')](_0x4c2247[_0x89a1('0x44')],_0x315b40,_[_0x89a1('0x4a')](_0x4c2247['data3'])?!![]:parseInt(_0x4c2247[_0x89a1('0x4b')],0xa));if(_[_0x89a1('0x4a')](_0x4c2247[_0x89a1('0x4c')])){_0x3cad82[_0x89a1('0x4d')]='0';}else{_0x3cad82[_0x89a1('0x4e')]=_0x4c2247['data4'];_0x3cad82[_0x89a1('0x4f')]=_[_0x89a1('0x4a')](_0x4c2247[_0x89a1('0x50')])?'800':_0x4c2247[_0x89a1('0x50')];_0x3cad82['windowHeight']=_[_0x89a1('0x4a')](_0x4c2247['data6'])?_0x89a1('0x51'):_0x4c2247[_0x89a1('0x52')];}break;case'winapp':_0x3cad82[_0x89a1('0x53')]=_0x4c2247[_0x89a1('0x44')]?Mustache[_0x89a1('0x47')](_0x4c2247[_0x89a1('0x44')],_0x315b40):'';_0x3cad82[_0x89a1('0x54')]=_0x4c2247[_0x89a1('0x4b')]?Mustache[_0x89a1('0x47')](_0x4c2247[_0x89a1('0x4b')],_0x315b40):'';break;}this[_0x89a1('0x34')](util[_0x89a1('0x55')](_0x89a1('0x56'),this[_0x89a1('0x10')][_0x315b40['interface']][_0x89a1('0x57')]),util[_0x89a1('0x55')](_0x89a1('0x58'),_0x4c2247[_0x89a1('0x59')][_0x89a1('0x5a')](),barAndWebActions[_0x4c2247[_0x89a1('0x43')]]),_[_0x89a1('0x3d')](_0x3cad82,_0x315b40));break;case'jscripty':this[_0x89a1('0x34')](util[_0x89a1('0x55')](_0x89a1('0x56'),this[_0x89a1('0x10')][_0x315b40[_0x89a1('0x3a')]][_0x89a1('0x57')]),util[_0x89a1('0x55')]('trigger:%s',_0x4c2247[_0x89a1('0x59')][_0x89a1('0x5a')]()),_['merge']({'ProjectId':parseInt(_0x4c2247[_0x89a1('0x43')],0xa)},_0x315b40));break;default:this['emit'](util[_0x89a1('0x55')](_0x89a1('0x56'),this[_0x89a1('0x10')][_0x315b40['interface']]['name']),util['format']('trigger:%s',_0x4c2247[_0x89a1('0x59')][_0x89a1('0x5a')]()),_[_0x89a1('0x3d')]({},_0x4c2247,_0x315b40));}}switch(_0x4c2247[_0x89a1('0x59')][_0x89a1('0x5a')]()){case _0x89a1('0x40'):cmContact[_0x89a1('0x5b')](this[_0x89a1('0x10')][_0x315b40[_0x89a1('0x3a')]],this[_0x89a1('0xf')][_0x361c1b],_0x4c2247,_0x315b40);break;case'integration':integration[_0x89a1('0x5b')](_0x4c2247,_0x315b40,this['accounts'],this[_0x89a1('0x10')][_0x315b40[_0x89a1('0x3a')]],this['voiceQueues'][_0x315b40[_0x89a1('0x5c')]],this[_0x89a1('0x12')][_0x315b40[_0x89a1('0x5d')]]);break;case _0x89a1('0x5e'):urlforward[_0x89a1('0x5b')](_0x4c2247,_0x315b40);break;case'script':script[_0x89a1('0x5b')](_0x4c2247,_0x315b40);break;}}}}}}};Trigger[_0x89a1('0x33')][_0x89a1('0x49')]=function(_0x1bff32,_0xc27806,_0x5a0fc7){var _0x3ab63a=url[_0x89a1('0x5f')](Mustache[_0x89a1('0x47')](_0x1bff32,_0xc27806),!![]);if(_0x5a0fc7){_['merge'](_0x3ab63a[_0x89a1('0x60')],_0xc27806);}delete _0x3ab63a[_0x89a1('0x61')];var _0x48abc9=url[_0x89a1('0x55')](_0x3ab63a);_0x48abc9=_0x48abc9['replace'](/\/\?/g,'?');return _0x48abc9;};Trigger['prototype'][_0x89a1('0x62')]=function(_0x44fde9,_0x164380){var _0xd66c45=!![];var _0x695226=!![];var _0x2e080b=![];if(_0x44fde9['channel']===_0x164380[_0x89a1('0x37')]){_0x2e080b=!![];}if(_0x44fde9['AllConditions']['length']){_0xd66c45=_['every'](_0x44fde9[_0x89a1('0x63')],this[_0x89a1('0x64')](_0x164380,_0x44fde9[_0x89a1('0x65')]));}if(_0x44fde9[_0x89a1('0x66')][_0x89a1('0x67')]){_0x695226=_[_0x89a1('0x68')](_0x44fde9['AnyConditions'],this[_0x89a1('0x64')](_0x164380,_0x44fde9['channel']));}return _0x2e080b&&_0xd66c45&&_0x695226;};Trigger[_0x89a1('0x33')][_0x89a1('0x64')]=function(_0x572e53,_0x55efe6){return function(_0x54d6aa){switch(_0x54d6aa['field']){case _0x89a1('0x69'):if(_0x572e53[_0x89a1('0x65')]===_0x55efe6){if(_0x55efe6===_0x89a1('0x6a')){return _0x572e53[_0x89a1('0x6b')]?operators[_0x54d6aa[_0x89a1('0x6c')]](Number(_0x54d6aa[_0x89a1('0x6d')]),_0x572e53[_0x89a1('0x6b')]):![];}else{return _0x572e53[_[_0x89a1('0x6e')](_0x55efe6)+'AccountId']?operators[_0x54d6aa[_0x89a1('0x6c')]](Number(_0x54d6aa[_0x89a1('0x6d')]),_0x572e53[_[_0x89a1('0x6e')](_0x55efe6)+_0x89a1('0x6f')]):![];}}break;case _0x89a1('0x70'):case _0x89a1('0x71'):if(_0x572e53[_0x89a1('0x65')]===_0x55efe6){return _0x572e53['event']?operators[_0x54d6aa['operator']](_0x54d6aa[_0x89a1('0x6d')],_0x572e53[_0x89a1('0x72')]):![];}break;case'queue':return _0x572e53[_0x89a1('0x5c')]?operators[_0x54d6aa[_0x89a1('0x6c')]](_0x54d6aa[_0x89a1('0x6d')],_0x572e53['queue']):![];case _0x89a1('0x73'):return _0x572e53[_0x89a1('0x74')]?operators[_0x54d6aa[_0x89a1('0x6c')]](_0x54d6aa[_0x89a1('0x6d')],_0x572e53[_0x89a1('0x74')]):![];case _0x89a1('0x75'):return _0x572e53[_0x89a1('0x75')]?operators[_0x54d6aa[_0x89a1('0x6c')]](_0x54d6aa[_0x89a1('0x6d')],_0x572e53[_0x89a1('0x75')]):![];case _0x89a1('0x5d'):return _0x572e53['routeId']?operators[_0x54d6aa['operator']](_0x54d6aa[_0x89a1('0x6d')],_0x572e53[_0x89a1('0x5d')]):![];case _0x89a1('0x76'):if(_0x54d6aa['value']===_0x89a1('0x77'))_0x54d6aa[_0x89a1('0x6d')]=null;return typeof _0x572e53[_0x89a1('0x78')]!==_0x89a1('0x38')?operators[_0x54d6aa[_0x89a1('0x6c')]](_0x54d6aa[_0x89a1('0x6d')],_0x572e53[_0x89a1('0x78')]):![];case _0x89a1('0x79'):if(_0x572e53['channel']===_0x55efe6){return _0x54d6aa[_0x89a1('0x6d')]==='created'&&_0x54d6aa[_0x89a1('0x6c')]===_0x89a1('0x7a')?!![]:![];}break;}return![];};};module[_0x89a1('0x7b')]=Trigger;