Built motion from commit b5413ace.|2.6.9
[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 _0x1c75=['custom:timeout','custom:dialbegin','syncAgentDial','custom:dialend','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:offlineMessage','prototype','emit','info','stringify','motionChannel','voice','checkTriggers','hasOwnProperty','status','checkTrigger','merge','variables','length','interface','action','toLowerCase','contactmanager','motionbar','browser','data1','html','data2','render','template\x20not\x20found','url','buildUri','isNil','data3','location','uriLocation','data4','windowWidth','data5','windowHeight','data6','winApplication','format','user:%s','trigger:%s:%s','jscripty','trigger:%s','name','integration','exec','queue','urlforward','script','parse','query','search','channel','every','AllConditions','AnyConditions','checkConditions','field','account','chat','ChatWebsiteId','operator','AccountId','value','interaction','message','event','agent','membername','lastevent','routeId','mailSubstatus','substatus','undefined','created','equals','util','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','defaults','localhost','socket.io-emitter','popup','winapp','triggers','agents','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentcomplete','custom:agentnoanswer','custom:agentbusy','custom:agentreject','custom:amd','custom:queuecallerabandon'];(function(_0x36633a,_0x3812e4){var _0x263307=function(_0x444e7a){while(--_0x444e7a){_0x36633a['push'](_0x36633a['shift']());}};_0x263307(++_0x3812e4);}(_0x1c75,0xce));var _0x51c7=function(_0x4cb26a,_0x16bb49){_0x4cb26a=_0x4cb26a-0x0;var _0x12e181=_0x1c75[_0x4cb26a];return _0x12e181;};'use strict';var util=require(_0x51c7('0x0'));var _=require('lodash');var url=require('url');var Mustache=require('mustache');var Redis=require(_0x51c7('0x1'));var urlforward=require(_0x51c7('0x2'));var integration=require(_0x51c7('0x3'));var cmContact=require(_0x51c7('0x4'));var script=require(_0x51c7('0x5'));var config=require(_0x51c7('0x6'));var logger=require(_0x51c7('0x7'))(_0x51c7('0x8'));var ami=require(_0x51c7('0x9'));config[_0x51c7('0xa')]=_[_0x51c7('0xb')](config['redis'],{'host':_0x51c7('0xc'),'port':0x18eb});var io=require(_0x51c7('0xd'))(new Redis(config[_0x51c7('0xa')]));var operators={'equals':function(_0x29a8aa,_0x48d756){return _0x29a8aa==_0x48d756;},'not_equals':function(_0x24bc5a,_0x4b02a5){return _0x24bc5a!=_0x4b02a5;}};var barAndWebActions=[_0x51c7('0xe'),'url',_0x51c7('0xf')];function Trigger(_0x1830a0){this['triggers']=_0x1830a0[_0x51c7('0x10')];this[_0x51c7('0x11')]=_0x1830a0[_0x51c7('0x11')];this['voiceQueues']=_0x1830a0['voiceQueues'];this['templates']=_0x1830a0[_0x51c7('0x12')];this[_0x51c7('0x13')]=_0x1830a0[_0x51c7('0x13')];this['zendeskAccounts']=_0x1830a0[_0x51c7('0x14')];this['freshdeskAccounts']=_0x1830a0[_0x51c7('0x15')];this['salesforceAccounts']=_0x1830a0[_0x51c7('0x16')];this['sugarcrmAccounts']=_0x1830a0[_0x51c7('0x17')];this[_0x51c7('0x18')]=_0x1830a0[_0x51c7('0x18')];this[_0x51c7('0x19')]=_0x1830a0['deskAccounts'];this[_0x51c7('0x1a')]=_0x1830a0[_0x51c7('0x1a')];this[_0x51c7('0x1b')]=_0x1830a0[_0x51c7('0x1b')];this[_0x51c7('0x1c')]=_0x1830a0[_0x51c7('0x1c')];this['freshsalesAccounts']=_0x1830a0[_0x51c7('0x1d')];this[_0x51c7('0x1e')]={'zendesk':this[_0x51c7('0x14')],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0x51c7('0x15')],'sugarcrm':this[_0x51c7('0x17')],'zoho':this['zohoAccounts'],'desk':this['deskAccounts'],'vtiger':this[_0x51c7('0x1a')],'dynamics365':this[_0x51c7('0x1c')],'freshsales':this[_0x51c7('0x1d')],'servicenow':this[_0x51c7('0x1b')]};ami['on'](_0x51c7('0x1f'),this[_0x51c7('0x20')][_0x51c7('0x21')](this));ami['on']('custom:agentconnect',this[_0x51c7('0x20')][_0x51c7('0x21')](this));ami['on']('custom:agentringnoanswer',this[_0x51c7('0x20')]['bind'](this));ami['on'](_0x51c7('0x22'),this[_0x51c7('0x20')][_0x51c7('0x21')](this));ami['on']('custom:agentnosuchnumber',this[_0x51c7('0x20')][_0x51c7('0x21')](this));ami['on'](_0x51c7('0x23'),this[_0x51c7('0x20')][_0x51c7('0x21')](this));ami['on'](_0x51c7('0x24'),this['syncCustomEvent'][_0x51c7('0x21')](this));ami['on']('custom:agentcongestion',this[_0x51c7('0x20')][_0x51c7('0x21')](this));ami['on'](_0x51c7('0x25'),this[_0x51c7('0x20')][_0x51c7('0x21')](this));ami['on'](_0x51c7('0x26'),this[_0x51c7('0x20')][_0x51c7('0x21')](this));ami['on'](_0x51c7('0x27'),this[_0x51c7('0x20')][_0x51c7('0x21')](this));ami['on'](_0x51c7('0x28'),this['syncCustomEvent'][_0x51c7('0x21')](this));ami['on'](_0x51c7('0x29'),this[_0x51c7('0x2a')][_0x51c7('0x21')](this));ami['on']('custom:dialconnect',this[_0x51c7('0x2a')][_0x51c7('0x21')](this));ami['on'](_0x51c7('0x2b'),this[_0x51c7('0x2a')][_0x51c7('0x21')](this));ami['on']('custom:newinteraction',this[_0x51c7('0x20')]['bind'](this));ami['on'](_0x51c7('0x2c'),this[_0x51c7('0x20')][_0x51c7('0x21')](this));ami['on'](_0x51c7('0x2d'),this[_0x51c7('0x20')][_0x51c7('0x21')](this));ami['on'](_0x51c7('0x2e'),this[_0x51c7('0x20')][_0x51c7('0x21')](this));ami['on'](_0x51c7('0x2f'),this['syncCustomEvent'][_0x51c7('0x21')](this));ami['on']('custom:acceptmessage',this[_0x51c7('0x20')][_0x51c7('0x21')](this));ami['on']('custom:rejectmessage',this[_0x51c7('0x20')][_0x51c7('0x21')](this));ami['on'](_0x51c7('0x30'),this[_0x51c7('0x20')]['bind'](this));}Trigger[_0x51c7('0x31')][_0x51c7('0x32')]=function(_0x424d63,_0x5d7410,_0x551f23){logger[_0x51c7('0x33')](_0x424d63,_0x5d7410,JSON[_0x51c7('0x34')](_0x551f23));io['to'](_0x424d63)[_0x51c7('0x32')](_0x5d7410,_0x551f23);};Trigger[_0x51c7('0x31')][_0x51c7('0x20')]=function(_0x5a1f10){var _0x2ba74c=_['clone'](_0x5a1f10);if(typeof _0x2ba74c[_0x51c7('0x35')]==='undefined'){_0x2ba74c[_0x51c7('0x35')]=_0x51c7('0x36');}this['checkTriggers'](_0x2ba74c);};Trigger[_0x51c7('0x31')][_0x51c7('0x2a')]=function(_0x29b2d6){if(this[_0x51c7('0x11')][_0x29b2d6['interface']]){this['syncCustomEvent'](_0x29b2d6);}};Trigger[_0x51c7('0x31')][_0x51c7('0x37')]=function(_0x1aa561){var _0xa6d757;for(var _0x5497f3 in this[_0x51c7('0x10')]){if(this['triggers'][_0x51c7('0x38')](_0x5497f3)){if(this[_0x51c7('0x10')][_0x5497f3][_0x51c7('0x39')]){_0xa6d757=this[_0x51c7('0x3a')](this['triggers'][_0x5497f3],_0x1aa561);if(_0xa6d757){_[_0x51c7('0x3b')](_0x1aa561,_0x1aa561[_0x51c7('0x3c')]);for(var _0x32bc09=0x0,_0x2aafe6,_0x27b905,_0x2cf6cf;_0x32bc09<this['triggers'][_0x5497f3]['Actions'][_0x51c7('0x3d')];_0x32bc09+=0x1){_0x2aafe6=this[_0x51c7('0x10')][_0x5497f3]['Actions'][_0x32bc09];if(this[_0x51c7('0x11')][_0x1aa561[_0x51c7('0x3e')]]){switch(_0x2aafe6[_0x51c7('0x3f')][_0x51c7('0x40')]()){case _0x51c7('0x41'):break;case _0x51c7('0x42'):case _0x51c7('0x43'):var _0x24f1c0={};switch(barAndWebActions[_0x2aafe6[_0x51c7('0x44')]]){case _0x51c7('0xe'):_0x24f1c0['TemplateId']=_0x2aafe6['data2'];_0x24f1c0[_0x51c7('0x45')]=this[_0x51c7('0x12')][_0x2aafe6[_0x51c7('0x46')]]?Mustache[_0x51c7('0x47')](this['templates'][_0x2aafe6['data2']][_0x51c7('0x45')],_0x1aa561):_0x51c7('0x48');break;case _0x51c7('0x49'):_0x24f1c0['uri']=this[_0x51c7('0x4a')](_0x2aafe6[_0x51c7('0x46')],_0x1aa561,_[_0x51c7('0x4b')](_0x2aafe6[_0x51c7('0x4c')])?!![]:parseInt(_0x2aafe6['data3'],0xa));if(_[_0x51c7('0x4b')](_0x2aafe6['data4'])){_0x24f1c0[_0x51c7('0x4d')]='0';}else{_0x24f1c0[_0x51c7('0x4e')]=_0x2aafe6[_0x51c7('0x4f')];_0x24f1c0[_0x51c7('0x50')]=_['isNil'](_0x2aafe6['data5'])?'800':_0x2aafe6[_0x51c7('0x51')];_0x24f1c0[_0x51c7('0x52')]=_['isNil'](_0x2aafe6['data6'])?'600':_0x2aafe6[_0x51c7('0x53')];}break;case'winapp':_0x24f1c0[_0x51c7('0x54')]=_0x2aafe6[_0x51c7('0x46')]?Mustache[_0x51c7('0x47')](_0x2aafe6[_0x51c7('0x46')],_0x1aa561):'';_0x24f1c0['winArguments']=_0x2aafe6[_0x51c7('0x4c')]?Mustache[_0x51c7('0x47')](_0x2aafe6[_0x51c7('0x4c')],_0x1aa561):'';break;}this[_0x51c7('0x32')](util[_0x51c7('0x55')](_0x51c7('0x56'),this[_0x51c7('0x11')][_0x1aa561[_0x51c7('0x3e')]]['name']),util[_0x51c7('0x55')](_0x51c7('0x57'),_0x2aafe6[_0x51c7('0x3f')]['toLowerCase'](),barAndWebActions[_0x2aafe6[_0x51c7('0x44')]]),_['merge'](_0x24f1c0,_0x1aa561));break;case _0x51c7('0x58'):this[_0x51c7('0x32')](util[_0x51c7('0x55')](_0x51c7('0x56'),this[_0x51c7('0x11')][_0x1aa561[_0x51c7('0x3e')]]['name']),util['format'](_0x51c7('0x59'),_0x2aafe6[_0x51c7('0x3f')][_0x51c7('0x40')]()),_[_0x51c7('0x3b')]({'ProjectId':parseInt(_0x2aafe6[_0x51c7('0x44')],0xa)},_0x1aa561));break;default:this[_0x51c7('0x32')](util[_0x51c7('0x55')](_0x51c7('0x56'),this[_0x51c7('0x11')][_0x1aa561[_0x51c7('0x3e')]][_0x51c7('0x5a')]),util[_0x51c7('0x55')](_0x51c7('0x59'),_0x2aafe6[_0x51c7('0x3f')][_0x51c7('0x40')]()),_[_0x51c7('0x3b')]({},_0x2aafe6,_0x1aa561));}}switch(_0x2aafe6[_0x51c7('0x3f')][_0x51c7('0x40')]()){case _0x51c7('0x41'):cmContact['exec'](this['agents'][_0x1aa561[_0x51c7('0x3e')]],this[_0x51c7('0x10')][_0x5497f3],_0x2aafe6,_0x1aa561);break;case _0x51c7('0x5b'):integration[_0x51c7('0x5c')](_0x2aafe6,_0x1aa561,this['accounts'],this[_0x51c7('0x11')][_0x1aa561[_0x51c7('0x3e')]],this['voiceQueues'][_0x1aa561[_0x51c7('0x5d')]],this[_0x51c7('0x13')][_0x1aa561['routeId']]);break;case _0x51c7('0x5e'):urlforward[_0x51c7('0x5c')](_0x2aafe6,_0x1aa561);break;case _0x51c7('0x5f'):script[_0x51c7('0x5c')](_0x2aafe6,_0x1aa561);break;}}}}}}};Trigger['prototype']['buildUri']=function(_0x76a1ec,_0x36cd76,_0xfc9d0c){var _0x448d45=url[_0x51c7('0x60')](Mustache[_0x51c7('0x47')](_0x76a1ec,_0x36cd76),!![]);if(_0xfc9d0c){_[_0x51c7('0x3b')](_0x448d45[_0x51c7('0x61')],_0x36cd76);}delete _0x448d45[_0x51c7('0x62')];var _0x210eea=url['format'](_0x448d45);_0x210eea=_0x210eea['replace'](/\/\?/g,'?');return _0x210eea;};Trigger[_0x51c7('0x31')]['checkTrigger']=function(_0xeb04ec,_0x5d1798){var _0x3424bb=!![];var _0x18dcfe=!![];var _0x56819f=![];if(_0xeb04ec[_0x51c7('0x63')]===_0x5d1798[_0x51c7('0x35')]){_0x56819f=!![];}if(_0xeb04ec['AllConditions']['length']){_0x3424bb=_[_0x51c7('0x64')](_0xeb04ec[_0x51c7('0x65')],this['checkConditions'](_0x5d1798,_0xeb04ec[_0x51c7('0x63')]));}if(_0xeb04ec[_0x51c7('0x66')][_0x51c7('0x3d')]){_0x18dcfe=_['some'](_0xeb04ec[_0x51c7('0x66')],this[_0x51c7('0x67')](_0x5d1798,_0xeb04ec[_0x51c7('0x63')]));}return _0x56819f&&_0x3424bb&&_0x18dcfe;};Trigger['prototype']['checkConditions']=function(_0x5e941a,_0x3888ad){return function(_0xbeebe6){switch(_0xbeebe6[_0x51c7('0x68')]){case _0x51c7('0x69'):if(_0x5e941a[_0x51c7('0x63')]===_0x3888ad){if(_0x3888ad===_0x51c7('0x6a')){return _0x5e941a[_0x51c7('0x6b')]?operators[_0xbeebe6[_0x51c7('0x6c')]](Number(_0xbeebe6['value']),_0x5e941a[_0x51c7('0x6b')]):![];}else{return _0x5e941a[_['upperFirst'](_0x3888ad)+_0x51c7('0x6d')]?operators[_0xbeebe6[_0x51c7('0x6c')]](Number(_0xbeebe6[_0x51c7('0x6e')]),_0x5e941a[_['upperFirst'](_0x3888ad)+_0x51c7('0x6d')]):![];}}break;case _0x51c7('0x6f'):case _0x51c7('0x70'):if(_0x5e941a[_0x51c7('0x63')]===_0x3888ad){return _0x5e941a[_0x51c7('0x71')]?operators[_0xbeebe6['operator']](_0xbeebe6[_0x51c7('0x6e')],_0x5e941a[_0x51c7('0x71')]):![];}break;case'queue':return _0x5e941a['queue']?operators[_0xbeebe6['operator']](_0xbeebe6[_0x51c7('0x6e')],_0x5e941a[_0x51c7('0x5d')]):![];case _0x51c7('0x72'):return _0x5e941a[_0x51c7('0x73')]?operators[_0xbeebe6[_0x51c7('0x6c')]](_0xbeebe6[_0x51c7('0x6e')],_0x5e941a[_0x51c7('0x73')]):![];case _0x51c7('0x74'):return _0x5e941a[_0x51c7('0x74')]?operators[_0xbeebe6['operator']](_0xbeebe6[_0x51c7('0x6e')],_0x5e941a[_0x51c7('0x74')]):![];case'routeId':return _0x5e941a[_0x51c7('0x75')]?operators[_0xbeebe6[_0x51c7('0x6c')]](_0xbeebe6[_0x51c7('0x6e')],_0x5e941a['routeId']):![];case _0x51c7('0x76'):if(_0xbeebe6[_0x51c7('0x6e')]==='null')_0xbeebe6[_0x51c7('0x6e')]=null;return typeof _0x5e941a[_0x51c7('0x77')]!==_0x51c7('0x78')?operators[_0xbeebe6[_0x51c7('0x6c')]](_0xbeebe6[_0x51c7('0x6e')],_0x5e941a[_0x51c7('0x77')]):![];case'offlineMessage':if(_0x5e941a[_0x51c7('0x63')]===_0x3888ad){return _0xbeebe6['value']===_0x51c7('0x79')&&_0xbeebe6[_0x51c7('0x6c')]===_0x51c7('0x7a')?!![]:![];}break;}return![];};};module['exports']=Trigger;