Built motion from commit (unavailable).|2.5.31
[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 _0x43b9=['custom:dialconnect','custom:dialend','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','prototype','emit','info','stringify','clone','checkTriggers','hasOwnProperty','status','checkTrigger','merge','variables','Actions','motionbar','browser','TemplateId','data2','html','render','template\x20not\x20found','uri','buildUri','data3','data4','location','uriLocation','windowWidth','data5','800','windowHeight','data6','user:%s','name','toLowerCase','data1','jscripty','format','interface','trigger:%s','action','contactmanager','exec','integration','queue','routeId','urlforward','script','parse','query','AllConditions','every','checkConditions','channel','AnyConditions','length','some','field','account','chat','operator','value','ChatWebsiteId','upperFirst','AccountId','interaction','event','agent','membername','lastevent','util','mustache','ioredis','./integration','./cmContact','./script','../../../config/environment','../ami','redis','defaults','localhost','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentcomplete','custom:agentnoanswer','custom:agentcongestion','custom:amd','custom:dialbegin','syncAgentDial'];(function(_0x434cee,_0x28202d){var _0x4906bf=function(_0xa6a6a2){while(--_0xa6a6a2){_0x434cee['push'](_0x434cee['shift']());}};_0x4906bf(++_0x28202d);}(_0x43b9,0xba));var _0x943b=function(_0x3a00c3,_0x3bfd1d){_0x3a00c3=_0x3a00c3-0x0;var _0x49a164=_0x43b9[_0x3a00c3];return _0x49a164;};'use strict';var util=require(_0x943b('0x0'));var _=require('lodash');var url=require('url');var Mustache=require(_0x943b('0x1'));var Redis=require(_0x943b('0x2'));var urlforward=require('./urlforward');var integration=require(_0x943b('0x3'));var cmContact=require(_0x943b('0x4'));var script=require(_0x943b('0x5'));var config=require(_0x943b('0x6'));var logger=require('../../../config/logger')('trigger');var ami=require(_0x943b('0x7'));config[_0x943b('0x8')]=_[_0x943b('0x9')](config[_0x943b('0x8')],{'host':_0x943b('0xa'),'port':0x18eb});var io=require(_0x943b('0xb'))(new Redis(config[_0x943b('0x8')]));var operators={'equals':function(_0x433331,_0x15653e){return _0x433331==_0x15653e;},'not_equals':function(_0x116281,_0x49e5bd){return _0x116281!=_0x49e5bd;}};var barAndWebActions=[_0x943b('0xc'),'url',_0x943b('0xd')];function Trigger(_0x29a55f){this[_0x943b('0xe')]=_0x29a55f[_0x943b('0xe')];this[_0x943b('0xf')]=_0x29a55f['agents'];this['voiceQueues']=_0x29a55f[_0x943b('0x10')];this[_0x943b('0x11')]=_0x29a55f[_0x943b('0x11')];this[_0x943b('0x12')]=_0x29a55f[_0x943b('0x12')];this[_0x943b('0x13')]=_0x29a55f[_0x943b('0x13')];this[_0x943b('0x14')]=_0x29a55f['freshdeskAccounts'];this[_0x943b('0x15')]=_0x29a55f['salesforceAccounts'];this[_0x943b('0x16')]=_0x29a55f['sugarcrmAccounts'];this[_0x943b('0x17')]=_0x29a55f[_0x943b('0x17')];this['deskAccounts']=_0x29a55f[_0x943b('0x18')];this[_0x943b('0x19')]=_0x29a55f['vtigerAccounts'];this[_0x943b('0x1a')]=_0x29a55f[_0x943b('0x1a')];this[_0x943b('0x1b')]=_0x29a55f[_0x943b('0x1b')];this[_0x943b('0x1c')]=_0x29a55f['freshsalesAccounts'];this[_0x943b('0x1d')]={'zendesk':this[_0x943b('0x13')],'salesforce':this[_0x943b('0x15')],'freshdesk':this[_0x943b('0x14')],'sugarcrm':this[_0x943b('0x16')],'zoho':this[_0x943b('0x17')],'desk':this[_0x943b('0x18')],'vtiger':this['vtigerAccounts'],'dynamics365':this['dynamics365Accounts'],'freshsales':this[_0x943b('0x1c')],'servicenow':this[_0x943b('0x1a')]};ami['on']('custom:agentcalled',this[_0x943b('0x1e')][_0x943b('0x1f')](this));ami['on'](_0x943b('0x20'),this[_0x943b('0x1e')][_0x943b('0x1f')](this));ami['on'](_0x943b('0x21'),this['syncCustomEvent'][_0x943b('0x1f')](this));ami['on'](_0x943b('0x22'),this[_0x943b('0x1e')][_0x943b('0x1f')](this));ami['on']('custom:agentnosuchnumber',this['syncCustomEvent']['bind'](this));ami['on'](_0x943b('0x23'),this['syncCustomEvent'][_0x943b('0x1f')](this));ami['on']('custom:agentbusy',this[_0x943b('0x1e')][_0x943b('0x1f')](this));ami['on'](_0x943b('0x24'),this[_0x943b('0x1e')][_0x943b('0x1f')](this));ami['on']('custom:agentreject',this[_0x943b('0x1e')][_0x943b('0x1f')](this));ami['on'](_0x943b('0x25'),this['syncCustomEvent'][_0x943b('0x1f')](this));ami['on']('custom:queuecallerabandon',this[_0x943b('0x1e')][_0x943b('0x1f')](this));ami['on']('custom:timeout',this['syncCustomEvent'][_0x943b('0x1f')](this));ami['on'](_0x943b('0x26'),this[_0x943b('0x27')][_0x943b('0x1f')](this));ami['on'](_0x943b('0x28'),this[_0x943b('0x27')][_0x943b('0x1f')](this));ami['on'](_0x943b('0x29'),this[_0x943b('0x27')][_0x943b('0x1f')](this));ami['on']('custom:newinteraction',this[_0x943b('0x1e')][_0x943b('0x1f')](this));ami['on']('custom:closedinteraction',this[_0x943b('0x1e')][_0x943b('0x1f')](this));ami['on'](_0x943b('0x2a'),this['syncCustomEvent'][_0x943b('0x1f')](this));ami['on'](_0x943b('0x2b'),this[_0x943b('0x1e')]['bind'](this));ami['on'](_0x943b('0x2c'),this['syncCustomEvent'][_0x943b('0x1f')](this));ami['on']('custom:rejectmessage',this[_0x943b('0x1e')]['bind'](this));}Trigger[_0x943b('0x2d')][_0x943b('0x2e')]=function(_0x1817b5,_0x3b028e,_0xa81106){logger[_0x943b('0x2f')](_0x1817b5,_0x3b028e,JSON[_0x943b('0x30')](_0xa81106));io['to'](_0x1817b5)[_0x943b('0x2e')](_0x3b028e,_0xa81106);};Trigger[_0x943b('0x2d')][_0x943b('0x1e')]=function(_0x40de00){var _0x4e50d5=_[_0x943b('0x31')](_0x40de00);this['checkTriggers'](_0x4e50d5);};Trigger[_0x943b('0x2d')]['syncAgentDial']=function(_0x3cc520){if(this[_0x943b('0xf')][_0x3cc520['interface']]){this[_0x943b('0x1e')](_0x3cc520);}};Trigger['prototype'][_0x943b('0x32')]=function(_0xeb38c2){var _0x562753;for(var _0x4a56c4 in this['triggers']){if(this[_0x943b('0xe')][_0x943b('0x33')](_0x4a56c4)){if(this[_0x943b('0xe')][_0x4a56c4][_0x943b('0x34')]){_0x562753=this[_0x943b('0x35')](this[_0x943b('0xe')][_0x4a56c4],_0xeb38c2);if(_0x562753){_[_0x943b('0x36')](_0xeb38c2,_0xeb38c2[_0x943b('0x37')]);for(var _0x1b62c6=0x0,_0x2862a6,_0x29fc8c,_0x5e4d25;_0x1b62c6<this['triggers'][_0x4a56c4]['Actions']['length'];_0x1b62c6+=0x1){_0x2862a6=this[_0x943b('0xe')][_0x4a56c4][_0x943b('0x38')][_0x1b62c6];if(this[_0x943b('0xf')][_0xeb38c2['interface']]){switch(_0x2862a6['action']['toLowerCase']()){case'contactmanager':break;case _0x943b('0x39'):case _0x943b('0x3a'):var _0x446f2={};switch(barAndWebActions[_0x2862a6['data1']]){case _0x943b('0xc'):_0x446f2[_0x943b('0x3b')]=_0x2862a6[_0x943b('0x3c')];_0x446f2[_0x943b('0x3d')]=this['templates'][_0x2862a6[_0x943b('0x3c')]]?Mustache[_0x943b('0x3e')](this[_0x943b('0x11')][_0x2862a6[_0x943b('0x3c')]][_0x943b('0x3d')],_0xeb38c2):_0x943b('0x3f');break;case'url':_0x446f2[_0x943b('0x40')]=this[_0x943b('0x41')](_0x2862a6[_0x943b('0x3c')],_0xeb38c2,_['isNil'](_0x2862a6['data3'])?!![]:parseInt(_0x2862a6[_0x943b('0x42')],0xa));if(_['isNil'](_0x2862a6[_0x943b('0x43')])){_0x446f2[_0x943b('0x44')]='0';}else{_0x446f2[_0x943b('0x45')]=_0x2862a6['data4'];_0x446f2[_0x943b('0x46')]=_['isNil'](_0x2862a6[_0x943b('0x47')])?_0x943b('0x48'):_0x2862a6[_0x943b('0x47')];_0x446f2[_0x943b('0x49')]=_['isNil'](_0x2862a6[_0x943b('0x4a')])?'600':_0x2862a6[_0x943b('0x4a')];}break;case _0x943b('0xd'):_0x446f2['winApplication']=_0x2862a6[_0x943b('0x3c')]?Mustache[_0x943b('0x3e')](_0x2862a6['data2'],_0xeb38c2):'';_0x446f2['winArguments']=_0x2862a6[_0x943b('0x42')]?Mustache[_0x943b('0x3e')](_0x2862a6['data3'],_0xeb38c2):'';break;}this['emit'](util['format'](_0x943b('0x4b'),this[_0x943b('0xf')][_0xeb38c2['interface']][_0x943b('0x4c')]),util['format']('trigger:%s:%s',_0x2862a6['action'][_0x943b('0x4d')](),barAndWebActions[_0x2862a6[_0x943b('0x4e')]]),_['merge'](_0x446f2,_0xeb38c2));break;case _0x943b('0x4f'):this[_0x943b('0x2e')](util[_0x943b('0x50')]('user:%s',this[_0x943b('0xf')][_0xeb38c2[_0x943b('0x51')]][_0x943b('0x4c')]),util[_0x943b('0x50')](_0x943b('0x52'),_0x2862a6[_0x943b('0x53')][_0x943b('0x4d')]()),_[_0x943b('0x36')]({'ProjectId':parseInt(_0x2862a6[_0x943b('0x4e')],0xa)},_0xeb38c2));break;default:this[_0x943b('0x2e')](util[_0x943b('0x50')](_0x943b('0x4b'),this[_0x943b('0xf')][_0xeb38c2[_0x943b('0x51')]][_0x943b('0x4c')]),util[_0x943b('0x50')](_0x943b('0x52'),_0x2862a6[_0x943b('0x53')]['toLowerCase']()),_[_0x943b('0x36')]({},_0x2862a6,_0xeb38c2));}}switch(_0x2862a6[_0x943b('0x53')][_0x943b('0x4d')]()){case _0x943b('0x54'):cmContact[_0x943b('0x55')](this['agents'][_0xeb38c2['interface']],this[_0x943b('0xe')][_0x4a56c4],_0x2862a6,_0xeb38c2);break;case _0x943b('0x56'):integration[_0x943b('0x55')](_0x2862a6,_0xeb38c2,this[_0x943b('0x1d')],this[_0x943b('0xf')][_0xeb38c2['interface']],this[_0x943b('0x10')][_0xeb38c2[_0x943b('0x57')]],this['voiceExtensions'][_0xeb38c2[_0x943b('0x58')]]);break;case _0x943b('0x59'):urlforward['exec'](_0x2862a6,_0xeb38c2);break;case _0x943b('0x5a'):script[_0x943b('0x55')](_0x2862a6,_0xeb38c2);break;}}}}}}};Trigger[_0x943b('0x2d')]['buildUri']=function(_0x243550,_0x322481,_0xf101df){var _0x50cf12=url[_0x943b('0x5b')](Mustache['render'](_0x243550,_0x322481),!![]);if(_0xf101df){_[_0x943b('0x36')](_0x50cf12[_0x943b('0x5c')],_0x322481);}delete _0x50cf12['search'];var _0x4ae7e2=url[_0x943b('0x50')](_0x50cf12);_0x4ae7e2=_0x4ae7e2['replace'](/\/\?/g,'?');return _0x4ae7e2;};Trigger[_0x943b('0x2d')][_0x943b('0x35')]=function(_0x18bcfc,_0x4f64f4){var _0x22a357=!![],_0x156e90=!![];if(_0x18bcfc[_0x943b('0x5d')]['length']){_0x22a357=_[_0x943b('0x5e')](_0x18bcfc['AllConditions'],this[_0x943b('0x5f')](_0x4f64f4,_0x18bcfc[_0x943b('0x60')]));}if(_0x18bcfc[_0x943b('0x61')][_0x943b('0x62')]){_0x156e90=_[_0x943b('0x63')](_0x18bcfc['AnyConditions'],this['checkConditions'](_0x4f64f4,_0x18bcfc['channel']));}return _0x22a357&&_0x156e90;};Trigger[_0x943b('0x2d')][_0x943b('0x5f')]=function(_0x13960d,_0x3a1bcf){return function(_0x3ae713){switch(_0x3ae713[_0x943b('0x64')]){case _0x943b('0x65'):if(_0x13960d[_0x943b('0x60')]===_0x3a1bcf){if(_0x3a1bcf===_0x943b('0x66')){return _0x13960d['ChatWebsiteId']?operators[_0x3ae713[_0x943b('0x67')]](Number(_0x3ae713[_0x943b('0x68')]),_0x13960d[_0x943b('0x69')]):![];}else{return _0x13960d[_[_0x943b('0x6a')](_0x3a1bcf)+'AccountId']?operators[_0x3ae713[_0x943b('0x67')]](Number(_0x3ae713[_0x943b('0x68')]),_0x13960d[_[_0x943b('0x6a')](_0x3a1bcf)+_0x943b('0x6b')]):![];}}break;case _0x943b('0x6c'):case'message':if(_0x13960d['channel']===_0x3a1bcf){return _0x13960d[_0x943b('0x6d')]?operators[_0x3ae713[_0x943b('0x67')]](_0x3ae713[_0x943b('0x68')],_0x13960d[_0x943b('0x6d')]):![];}break;case _0x943b('0x57'):return _0x13960d['queue']?operators[_0x3ae713[_0x943b('0x67')]](_0x3ae713[_0x943b('0x68')],_0x13960d[_0x943b('0x57')]):![];case _0x943b('0x6e'):return _0x13960d[_0x943b('0x6f')]?operators[_0x3ae713[_0x943b('0x67')]](_0x3ae713[_0x943b('0x68')],_0x13960d['membername']):![];case'lastevent':return _0x13960d[_0x943b('0x70')]?operators[_0x3ae713[_0x943b('0x67')]](_0x3ae713[_0x943b('0x68')],_0x13960d[_0x943b('0x70')]):![];case _0x943b('0x58'):return _0x13960d[_0x943b('0x58')]?operators[_0x3ae713[_0x943b('0x67')]](_0x3ae713[_0x943b('0x68')],_0x13960d[_0x943b('0x58')]):![];}return![];};};module['exports']=Trigger;