Built motion from commit (unavailable).|2.3.95
[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 _0x8d05=['name','format','trigger:%s:%s','data1','merge','trigger:%s','exec','integration','queue','routeId','parse','query','AllConditions','every','checkConditions','channel','length','AnyConditions','account','chat','operator','value','upperFirst','AccountId','message','event','lastevent','exports','util','lodash','url','mustache','ioredis','./cmContact','../rpc/cmContact','../../../config/environment','../../../config/logger','../ami','redis','socket.io-emitter','popup','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentringnoanswer','custom:queuecallerabandon','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','emit','info','stringify','prototype','clone','checkTriggers','hasOwnProperty','status','checkTrigger','variables','Actions','action','toLowerCase','contactmanager','motionbar','browser','render','data2','uri','buildUri','isNil','data3','location','data4','windowWidth','data5','800','data6','600','winapp','winArguments','user:%s','interface'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x8d05,0xe8));var _0x58d0=function(_0x5a80ef,_0x57d7fa){_0x5a80ef=_0x5a80ef-0x0;var _0x40ea9c=_0x8d05[_0x5a80ef];return _0x40ea9c;};'use strict';var util=require(_0x58d0('0x0'));var _=require(_0x58d0('0x1'));var url=require(_0x58d0('0x2'));var Mustache=require(_0x58d0('0x3'));var Redis=require(_0x58d0('0x4'));var urlforward=require('./urlforward');var integration=require('./integration');var cmContact=require(_0x58d0('0x5'));var cmContactRpc=require(_0x58d0('0x6'));var config=require(_0x58d0('0x7'));var logger=require(_0x58d0('0x8'))('trigger');var ami=require(_0x58d0('0x9'));config[_0x58d0('0xa')]=_['defaults'](config[_0x58d0('0xa')],{'host':'localhost','port':0x18eb});var io=require(_0x58d0('0xb'))(new Redis(config[_0x58d0('0xa')]));var operators={'equals':function(_0x38c1d9,_0xce5a28){return _0x38c1d9==_0xce5a28;},'not_equals':function(_0x1d070a,_0x492edf){return _0x1d070a!=_0x492edf;}};var barAndWebActions=[_0x58d0('0xc'),_0x58d0('0x2'),'winapp'];function Trigger(_0x1ce0e7){this[_0x58d0('0xd')]=_0x1ce0e7['triggers'];this['agents']=_0x1ce0e7[_0x58d0('0xe')];this[_0x58d0('0xf')]=_0x1ce0e7[_0x58d0('0xf')];this[_0x58d0('0x10')]=_0x1ce0e7[_0x58d0('0x10')];this[_0x58d0('0x11')]=_0x1ce0e7[_0x58d0('0x11')];this[_0x58d0('0x12')]=_0x1ce0e7[_0x58d0('0x12')];this[_0x58d0('0x13')]=_0x1ce0e7[_0x58d0('0x13')];this[_0x58d0('0x14')]=_0x1ce0e7[_0x58d0('0x14')];this[_0x58d0('0x15')]=_0x1ce0e7[_0x58d0('0x15')];this[_0x58d0('0x16')]=_0x1ce0e7[_0x58d0('0x16')];this[_0x58d0('0x17')]=_0x1ce0e7[_0x58d0('0x17')];this['vtigerAccounts']=_0x1ce0e7[_0x58d0('0x18')];this[_0x58d0('0x19')]=_0x1ce0e7[_0x58d0('0x19')];this[_0x58d0('0x1a')]=_0x1ce0e7[_0x58d0('0x1a')];this[_0x58d0('0x1b')]={'zendesk':this[_0x58d0('0x12')],'salesforce':this[_0x58d0('0x14')],'freshdesk':this[_0x58d0('0x13')],'sugarcrm':this[_0x58d0('0x15')],'zoho':this[_0x58d0('0x16')],'desk':this[_0x58d0('0x17')],'vtiger':this[_0x58d0('0x18')],'servicenow':this[_0x58d0('0x19')],'dynamics365':this['dynamics365Accounts']};ami['on'](_0x58d0('0x1c'),this[_0x58d0('0x1d')][_0x58d0('0x1e')](this));ami['on']('custom:agentconnect',this[_0x58d0('0x1d')][_0x58d0('0x1e')](this));ami['on'](_0x58d0('0x1f'),this['syncCustomEvent'][_0x58d0('0x1e')](this));ami['on']('custom:agentcomplete',this['syncCustomEvent'][_0x58d0('0x1e')](this));ami['on'](_0x58d0('0x20'),this[_0x58d0('0x1d')][_0x58d0('0x1e')](this));ami['on']('custom:dialbegin',this[_0x58d0('0x1d')][_0x58d0('0x1e')](this));ami['on'](_0x58d0('0x21'),this['syncCustomEvent'][_0x58d0('0x1e')](this));ami['on'](_0x58d0('0x22'),this['syncCustomEvent'][_0x58d0('0x1e')](this));ami['on'](_0x58d0('0x23'),this[_0x58d0('0x1d')][_0x58d0('0x1e')](this));ami['on'](_0x58d0('0x24'),this['syncCustomEvent']['bind'](this));ami['on'](_0x58d0('0x25'),this[_0x58d0('0x1d')][_0x58d0('0x1e')](this));ami['on'](_0x58d0('0x26'),this[_0x58d0('0x1d')]['bind'](this));ami['on'](_0x58d0('0x27'),this['syncCustomEvent'][_0x58d0('0x1e')](this));ami['on'](_0x58d0('0x28'),this[_0x58d0('0x1d')][_0x58d0('0x1e')](this));}Trigger['prototype'][_0x58d0('0x29')]=function(_0x83f281,_0xa8f2f3,_0x4f7db5){logger[_0x58d0('0x2a')](_0x83f281,_0xa8f2f3,JSON[_0x58d0('0x2b')](_0x4f7db5));io['to'](_0x83f281)[_0x58d0('0x29')](_0xa8f2f3,_0x4f7db5);};Trigger[_0x58d0('0x2c')]['syncCustomEvent']=function(_0x329567){var _0x21c717=_[_0x58d0('0x2d')](_0x329567);this[_0x58d0('0x2e')](_0x21c717);};Trigger[_0x58d0('0x2c')]['checkTriggers']=function(_0x29f421){var _0x107e69;for(var _0x3ba866 in this[_0x58d0('0xd')]){if(this[_0x58d0('0xd')][_0x58d0('0x2f')](_0x3ba866)){if(this[_0x58d0('0xd')][_0x3ba866][_0x58d0('0x30')]){_0x107e69=this[_0x58d0('0x31')](this[_0x58d0('0xd')][_0x3ba866],_0x29f421);if(_0x107e69){_['merge'](_0x29f421,_0x29f421[_0x58d0('0x32')]);for(var _0xb683ba=0x0,_0x2d8a4f,_0xc738f7,_0x429b90;_0xb683ba<this[_0x58d0('0xd')][_0x3ba866][_0x58d0('0x33')]['length'];_0xb683ba+=0x1){_0x2d8a4f=this['triggers'][_0x3ba866][_0x58d0('0x33')][_0xb683ba];if(this[_0x58d0('0xe')][_0x29f421['interface']]){switch(_0x2d8a4f[_0x58d0('0x34')][_0x58d0('0x35')]()){case _0x58d0('0x36'):break;case _0x58d0('0x37'):case _0x58d0('0x38'):var _0x4cc197={};switch(barAndWebActions[_0x2d8a4f['data1']]){case _0x58d0('0xc'):_0x4cc197['TemplateId']=_0x2d8a4f['data2'];_0x4cc197['html']=this[_0x58d0('0x10')][_0x2d8a4f['data2']]?Mustache[_0x58d0('0x39')](this['templates'][_0x2d8a4f[_0x58d0('0x3a')]]['html'],_0x29f421):'template\x20not\x20found';break;case'url':_0x4cc197[_0x58d0('0x3b')]=this[_0x58d0('0x3c')](_0x2d8a4f['data2'],_0x29f421,_[_0x58d0('0x3d')](_0x2d8a4f['data3'])?!![]:parseInt(_0x2d8a4f[_0x58d0('0x3e')],0xa));if(_[_0x58d0('0x3d')](_0x2d8a4f['data4'])){_0x4cc197[_0x58d0('0x3f')]='0';}else{_0x4cc197['uriLocation']=_0x2d8a4f[_0x58d0('0x40')];_0x4cc197[_0x58d0('0x41')]=_[_0x58d0('0x3d')](_0x2d8a4f[_0x58d0('0x42')])?_0x58d0('0x43'):_0x2d8a4f['data5'];_0x4cc197['windowHeight']=_['isNil'](_0x2d8a4f[_0x58d0('0x44')])?_0x58d0('0x45'):_0x2d8a4f['data6'];}break;case _0x58d0('0x46'):_0x4cc197['winApplication']=_0x2d8a4f['data2']?Mustache[_0x58d0('0x39')](_0x2d8a4f[_0x58d0('0x3a')],_0x29f421):'';_0x4cc197[_0x58d0('0x47')]=_0x2d8a4f[_0x58d0('0x3e')]?Mustache[_0x58d0('0x39')](_0x2d8a4f['data3'],_0x29f421):'';break;}this['emit'](util['format'](_0x58d0('0x48'),this[_0x58d0('0xe')][_0x29f421[_0x58d0('0x49')]][_0x58d0('0x4a')]),util[_0x58d0('0x4b')](_0x58d0('0x4c'),_0x2d8a4f[_0x58d0('0x34')]['toLowerCase'](),barAndWebActions[_0x2d8a4f[_0x58d0('0x4d')]]),_[_0x58d0('0x4e')](_0x4cc197,_0x29f421));break;case'jscripty':this['emit'](util[_0x58d0('0x4b')](_0x58d0('0x48'),this[_0x58d0('0xe')][_0x29f421[_0x58d0('0x49')]][_0x58d0('0x4a')]),util[_0x58d0('0x4b')](_0x58d0('0x4f'),_0x2d8a4f[_0x58d0('0x34')][_0x58d0('0x35')]()),_['merge']({'ProjectId':parseInt(_0x2d8a4f[_0x58d0('0x4d')],0xa)},_0x29f421));break;default:this[_0x58d0('0x29')](util['format']('user:%s',this[_0x58d0('0xe')][_0x29f421['interface']][_0x58d0('0x4a')]),util['format']('trigger:%s',_0x2d8a4f[_0x58d0('0x34')][_0x58d0('0x35')]()),_[_0x58d0('0x4e')]({},_0x2d8a4f,_0x29f421));}}switch(_0x2d8a4f[_0x58d0('0x34')][_0x58d0('0x35')]()){case'contactmanager':cmContact[_0x58d0('0x50')](this[_0x58d0('0xe')][_0x29f421[_0x58d0('0x49')]],_0x2d8a4f,_0x29f421,cmContactRpc);break;case _0x58d0('0x51'):integration[_0x58d0('0x50')](_0x2d8a4f,_0x29f421,this['accounts'],this['agents'][_0x29f421[_0x58d0('0x49')]],this[_0x58d0('0xf')][_0x29f421[_0x58d0('0x52')]],this['voiceExtensions'][_0x29f421[_0x58d0('0x53')]]);break;case'urlforward':urlforward[_0x58d0('0x50')](_0x2d8a4f,_0x29f421);break;}}}}}}};Trigger[_0x58d0('0x2c')][_0x58d0('0x3c')]=function(_0x5a8e99,_0x5e3d20,_0x1b00e3){var _0x1c9afb=url[_0x58d0('0x54')](Mustache['render'](_0x5a8e99,_0x5e3d20),!![]);if(_0x1b00e3){_[_0x58d0('0x4e')](_0x1c9afb[_0x58d0('0x55')],_0x5e3d20);}delete _0x1c9afb['search'];return url['format'](_0x1c9afb);};Trigger[_0x58d0('0x2c')][_0x58d0('0x31')]=function(_0x36bcc,_0xd41afa){var _0x3a90fa=!![],_0x1e5784=!![];if(_0x36bcc[_0x58d0('0x56')]['length']){_0x3a90fa=_[_0x58d0('0x57')](_0x36bcc[_0x58d0('0x56')],this[_0x58d0('0x58')](_0xd41afa,_0x36bcc[_0x58d0('0x59')]));}if(_0x36bcc['AnyConditions'][_0x58d0('0x5a')]){_0x1e5784=_['some'](_0x36bcc[_0x58d0('0x5b')],this[_0x58d0('0x58')](_0xd41afa,_0x36bcc['channel']));}return _0x3a90fa&&_0x1e5784;};Trigger[_0x58d0('0x2c')][_0x58d0('0x58')]=function(_0x149906,_0x5938c1){return function(_0x1aebdd){switch(_0x1aebdd['field']){case _0x58d0('0x5c'):if(_0x149906[_0x58d0('0x59')]===_0x5938c1){if(_0x5938c1===_0x58d0('0x5d')){return _0x149906['ChatWebsiteId']?operators[_0x1aebdd[_0x58d0('0x5e')]](Number(_0x1aebdd[_0x58d0('0x5f')]),_0x149906['ChatWebsiteId']):![];}else{return _0x149906[_[_0x58d0('0x60')](_0x5938c1)+_0x58d0('0x61')]?operators[_0x1aebdd[_0x58d0('0x5e')]](Number(_0x1aebdd[_0x58d0('0x5f')]),_0x149906[_[_0x58d0('0x60')](_0x5938c1)+_0x58d0('0x61')]):![];}}break;case'interaction':case _0x58d0('0x62'):if(_0x149906[_0x58d0('0x59')]===_0x5938c1){return _0x149906[_0x58d0('0x63')]?operators[_0x1aebdd[_0x58d0('0x5e')]](_0x1aebdd[_0x58d0('0x5f')],_0x149906[_0x58d0('0x63')]):![];}break;case _0x58d0('0x52'):return _0x149906['queue']?operators[_0x1aebdd[_0x58d0('0x5e')]](_0x1aebdd[_0x58d0('0x5f')],_0x149906[_0x58d0('0x52')]):![];case _0x58d0('0x64'):return _0x149906[_0x58d0('0x64')]?operators[_0x1aebdd[_0x58d0('0x5e')]](_0x1aebdd[_0x58d0('0x5f')],_0x149906['lastevent']):![];case _0x58d0('0x53'):return _0x149906['routeId']?operators[_0x1aebdd['operator']](_0x1aebdd[_0x58d0('0x5f')],_0x149906['routeId']):![];}return![];};};module[_0x58d0('0x65')]=Trigger;