Built motion from commit (unavailable).|2.4.18
[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 _0x1e37=['accounts','routeId','urlforward','script','parse','query','checkTrigger','AllConditions','every','checkConditions','channel','AnyConditions','some','field','account','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','interaction','message','event','queue','agent','lastevent','exports','util','lodash','url','mustache','ioredis','./integration','./script','../rpc/cmContact','../../../config/environment','../../../config/logger','trigger','../ami','defaults','redis','localhost','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','custom:agentcalled','bind','custom:agentconnect','syncCustomEvent','custom:agentringnoanswer','custom:agentcomplete','custom:queuecallerabandon','syncAgentDial','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','stringify','checkTriggers','status','merge','Actions','length','interface','action','toLowerCase','motionbar','browser','data1','TemplateId','data2','html','templates','render','template\x20not\x20found','buildUri','data3','isNil','data4','location','uriLocation','windowWidth','data5','windowHeight','data6','600','winArguments','format','user:%s','name','trigger:%s:%s','jscripty','trigger:%s','contactmanager','integration','exec'];(function(_0x3c4b86,_0x13aad0){var _0x387d08=function(_0x11efb2){while(--_0x11efb2){_0x3c4b86['push'](_0x3c4b86['shift']());}};_0x387d08(++_0x13aad0);}(_0x1e37,0x175));var _0x71e3=function(_0x5a961e,_0x43ff37){_0x5a961e=_0x5a961e-0x0;var _0x8de4a1=_0x1e37[_0x5a961e];return _0x8de4a1;};'use strict';var util=require(_0x71e3('0x0'));var _=require(_0x71e3('0x1'));var url=require(_0x71e3('0x2'));var Mustache=require(_0x71e3('0x3'));var Redis=require(_0x71e3('0x4'));var urlforward=require('./urlforward');var integration=require(_0x71e3('0x5'));var cmContact=require('./cmContact');var script=require(_0x71e3('0x6'));var cmContactRpc=require(_0x71e3('0x7'));var config=require(_0x71e3('0x8'));var logger=require(_0x71e3('0x9'))(_0x71e3('0xa'));var ami=require(_0x71e3('0xb'));config['redis']=_[_0x71e3('0xc')](config[_0x71e3('0xd')],{'host':_0x71e3('0xe'),'port':0x18eb});var io=require(_0x71e3('0xf'))(new Redis(config['redis']));var operators={'equals':function(_0x5d09b6,_0x5c1990){return _0x5d09b6==_0x5c1990;},'not_equals':function(_0x436a3a,_0x30b14c){return _0x436a3a!=_0x30b14c;}};var barAndWebActions=[_0x71e3('0x10'),_0x71e3('0x2'),_0x71e3('0x11')];function Trigger(_0x5992c1){this['triggers']=_0x5992c1[_0x71e3('0x12')];this[_0x71e3('0x13')]=_0x5992c1[_0x71e3('0x13')];this[_0x71e3('0x14')]=_0x5992c1[_0x71e3('0x14')];this['templates']=_0x5992c1['templates'];this[_0x71e3('0x15')]=_0x5992c1[_0x71e3('0x15')];this[_0x71e3('0x16')]=_0x5992c1[_0x71e3('0x16')];this[_0x71e3('0x17')]=_0x5992c1[_0x71e3('0x17')];this[_0x71e3('0x18')]=_0x5992c1[_0x71e3('0x18')];this[_0x71e3('0x19')]=_0x5992c1[_0x71e3('0x19')];this[_0x71e3('0x1a')]=_0x5992c1['zohoAccounts'];this[_0x71e3('0x1b')]=_0x5992c1[_0x71e3('0x1b')];this[_0x71e3('0x1c')]=_0x5992c1['vtigerAccounts'];this[_0x71e3('0x1d')]=_0x5992c1['servicenowAccounts'];this[_0x71e3('0x1e')]=_0x5992c1['dynamics365Accounts'];this[_0x71e3('0x1f')]=_0x5992c1[_0x71e3('0x1f')];this['accounts']={'zendesk':this[_0x71e3('0x16')],'salesforce':this[_0x71e3('0x18')],'freshdesk':this[_0x71e3('0x17')],'sugarcrm':this[_0x71e3('0x19')],'zoho':this['zohoAccounts'],'desk':this[_0x71e3('0x1b')],'vtiger':this[_0x71e3('0x1c')],'dynamics365':this[_0x71e3('0x1e')],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0x71e3('0x1d')]};ami['on'](_0x71e3('0x20'),this['syncCustomEvent'][_0x71e3('0x21')](this));ami['on'](_0x71e3('0x22'),this[_0x71e3('0x23')][_0x71e3('0x21')](this));ami['on'](_0x71e3('0x24'),this[_0x71e3('0x23')][_0x71e3('0x21')](this));ami['on'](_0x71e3('0x25'),this[_0x71e3('0x23')][_0x71e3('0x21')](this));ami['on'](_0x71e3('0x26'),this[_0x71e3('0x23')][_0x71e3('0x21')](this));ami['on']('custom:dialbegin',this[_0x71e3('0x27')]['bind'](this));ami['on']('custom:dialconnect',this[_0x71e3('0x27')][_0x71e3('0x21')](this));ami['on']('custom:dialend',this[_0x71e3('0x27')][_0x71e3('0x21')](this));ami['on'](_0x71e3('0x28'),this[_0x71e3('0x23')][_0x71e3('0x21')](this));ami['on'](_0x71e3('0x29'),this['syncCustomEvent'][_0x71e3('0x21')](this));ami['on'](_0x71e3('0x2a'),this[_0x71e3('0x23')][_0x71e3('0x21')](this));ami['on'](_0x71e3('0x2b'),this[_0x71e3('0x23')][_0x71e3('0x21')](this));ami['on'](_0x71e3('0x2c'),this[_0x71e3('0x23')][_0x71e3('0x21')](this));ami['on'](_0x71e3('0x2d'),this[_0x71e3('0x23')]['bind'](this));}Trigger[_0x71e3('0x2e')][_0x71e3('0x2f')]=function(_0x8c98e,_0x551581,_0xce5e9e){logger['info'](_0x8c98e,_0x551581,JSON[_0x71e3('0x30')](_0xce5e9e));io['to'](_0x8c98e)['emit'](_0x551581,_0xce5e9e);};Trigger[_0x71e3('0x2e')][_0x71e3('0x23')]=function(_0x290444){var _0x52dcc6=_['clone'](_0x290444);this[_0x71e3('0x31')](_0x52dcc6);};Trigger[_0x71e3('0x2e')]['syncAgentDial']=function(_0x3647c0){if(this[_0x71e3('0x13')][_0x3647c0['interface']]){this[_0x71e3('0x23')](_0x3647c0);}};Trigger['prototype'][_0x71e3('0x31')]=function(_0x2a38e2){var _0x328957;for(var _0x42f411 in this[_0x71e3('0x12')]){if(this[_0x71e3('0x12')]['hasOwnProperty'](_0x42f411)){if(this[_0x71e3('0x12')][_0x42f411][_0x71e3('0x32')]){_0x328957=this['checkTrigger'](this[_0x71e3('0x12')][_0x42f411],_0x2a38e2);if(_0x328957){_[_0x71e3('0x33')](_0x2a38e2,_0x2a38e2['variables']);for(var _0x38d8ca=0x0,_0xcaf81b,_0x50530b,_0x1643a7;_0x38d8ca<this['triggers'][_0x42f411][_0x71e3('0x34')][_0x71e3('0x35')];_0x38d8ca+=0x1){_0xcaf81b=this[_0x71e3('0x12')][_0x42f411][_0x71e3('0x34')][_0x38d8ca];if(this[_0x71e3('0x13')][_0x2a38e2[_0x71e3('0x36')]]){switch(_0xcaf81b[_0x71e3('0x37')][_0x71e3('0x38')]()){case'contactmanager':break;case _0x71e3('0x39'):case _0x71e3('0x3a'):var _0x4b885c={};switch(barAndWebActions[_0xcaf81b[_0x71e3('0x3b')]]){case _0x71e3('0x10'):_0x4b885c[_0x71e3('0x3c')]=_0xcaf81b[_0x71e3('0x3d')];_0x4b885c[_0x71e3('0x3e')]=this[_0x71e3('0x3f')][_0xcaf81b[_0x71e3('0x3d')]]?Mustache[_0x71e3('0x40')](this['templates'][_0xcaf81b[_0x71e3('0x3d')]][_0x71e3('0x3e')],_0x2a38e2):_0x71e3('0x41');break;case _0x71e3('0x2'):_0x4b885c['uri']=this[_0x71e3('0x42')](_0xcaf81b['data2'],_0x2a38e2,_['isNil'](_0xcaf81b[_0x71e3('0x43')])?!![]:parseInt(_0xcaf81b[_0x71e3('0x43')],0xa));if(_[_0x71e3('0x44')](_0xcaf81b[_0x71e3('0x45')])){_0x4b885c[_0x71e3('0x46')]='0';}else{_0x4b885c[_0x71e3('0x47')]=_0xcaf81b[_0x71e3('0x45')];_0x4b885c[_0x71e3('0x48')]=_['isNil'](_0xcaf81b[_0x71e3('0x49')])?'800':_0xcaf81b[_0x71e3('0x49')];_0x4b885c[_0x71e3('0x4a')]=_[_0x71e3('0x44')](_0xcaf81b[_0x71e3('0x4b')])?_0x71e3('0x4c'):_0xcaf81b[_0x71e3('0x4b')];}break;case _0x71e3('0x11'):_0x4b885c['winApplication']=_0xcaf81b[_0x71e3('0x3d')]?Mustache[_0x71e3('0x40')](_0xcaf81b[_0x71e3('0x3d')],_0x2a38e2):'';_0x4b885c[_0x71e3('0x4d')]=_0xcaf81b[_0x71e3('0x43')]?Mustache[_0x71e3('0x40')](_0xcaf81b[_0x71e3('0x43')],_0x2a38e2):'';break;}this[_0x71e3('0x2f')](util[_0x71e3('0x4e')](_0x71e3('0x4f'),this['agents'][_0x2a38e2[_0x71e3('0x36')]][_0x71e3('0x50')]),util[_0x71e3('0x4e')](_0x71e3('0x51'),_0xcaf81b[_0x71e3('0x37')][_0x71e3('0x38')](),barAndWebActions[_0xcaf81b[_0x71e3('0x3b')]]),_[_0x71e3('0x33')](_0x4b885c,_0x2a38e2));break;case _0x71e3('0x52'):this[_0x71e3('0x2f')](util[_0x71e3('0x4e')]('user:%s',this[_0x71e3('0x13')][_0x2a38e2['interface']][_0x71e3('0x50')]),util[_0x71e3('0x4e')]('trigger:%s',_0xcaf81b[_0x71e3('0x37')][_0x71e3('0x38')]()),_[_0x71e3('0x33')]({'ProjectId':parseInt(_0xcaf81b['data1'],0xa)},_0x2a38e2));break;default:this[_0x71e3('0x2f')](util[_0x71e3('0x4e')](_0x71e3('0x4f'),this[_0x71e3('0x13')][_0x2a38e2[_0x71e3('0x36')]]['name']),util[_0x71e3('0x4e')](_0x71e3('0x53'),_0xcaf81b['action'][_0x71e3('0x38')]()),_[_0x71e3('0x33')]({},_0xcaf81b,_0x2a38e2));}}switch(_0xcaf81b[_0x71e3('0x37')][_0x71e3('0x38')]()){case _0x71e3('0x54'):cmContact['exec'](this[_0x71e3('0x13')][_0x2a38e2[_0x71e3('0x36')]],_0xcaf81b,_0x2a38e2,cmContactRpc);break;case _0x71e3('0x55'):integration[_0x71e3('0x56')](_0xcaf81b,_0x2a38e2,this[_0x71e3('0x57')],this[_0x71e3('0x13')][_0x2a38e2['interface']],this[_0x71e3('0x14')][_0x2a38e2['queue']],this[_0x71e3('0x15')][_0x2a38e2[_0x71e3('0x58')]]);break;case _0x71e3('0x59'):urlforward['exec'](_0xcaf81b,_0x2a38e2);break;case _0x71e3('0x5a'):script['exec'](_0xcaf81b,_0x2a38e2);break;}}}}}}};Trigger['prototype'][_0x71e3('0x42')]=function(_0x42659d,_0x456b94,_0x58503f){var _0x4b19e9=url[_0x71e3('0x5b')](Mustache[_0x71e3('0x40')](_0x42659d,_0x456b94),!![]);if(_0x58503f){_[_0x71e3('0x33')](_0x4b19e9[_0x71e3('0x5c')],_0x456b94);}delete _0x4b19e9['search'];var _0x1ec9a5=url[_0x71e3('0x4e')](_0x4b19e9);_0x1ec9a5=_0x1ec9a5['replace'](/\/\?/g,'?');return _0x1ec9a5;};Trigger[_0x71e3('0x2e')][_0x71e3('0x5d')]=function(_0x25966b,_0x4df70f){var _0x5c196a=!![],_0x2eff10=!![];if(_0x25966b[_0x71e3('0x5e')][_0x71e3('0x35')]){_0x5c196a=_[_0x71e3('0x5f')](_0x25966b[_0x71e3('0x5e')],this[_0x71e3('0x60')](_0x4df70f,_0x25966b[_0x71e3('0x61')]));}if(_0x25966b[_0x71e3('0x62')][_0x71e3('0x35')]){_0x2eff10=_[_0x71e3('0x63')](_0x25966b['AnyConditions'],this[_0x71e3('0x60')](_0x4df70f,_0x25966b[_0x71e3('0x61')]));}return _0x5c196a&&_0x2eff10;};Trigger['prototype'][_0x71e3('0x60')]=function(_0x5ca3e4,_0x160ce5){return function(_0x5bee9b){switch(_0x5bee9b[_0x71e3('0x64')]){case _0x71e3('0x65'):if(_0x5ca3e4['channel']===_0x160ce5){if(_0x160ce5===_0x71e3('0x66')){return _0x5ca3e4[_0x71e3('0x67')]?operators[_0x5bee9b[_0x71e3('0x68')]](Number(_0x5bee9b[_0x71e3('0x69')]),_0x5ca3e4['ChatWebsiteId']):![];}else{return _0x5ca3e4[_[_0x71e3('0x6a')](_0x160ce5)+_0x71e3('0x6b')]?operators[_0x5bee9b[_0x71e3('0x68')]](Number(_0x5bee9b[_0x71e3('0x69')]),_0x5ca3e4[_[_0x71e3('0x6a')](_0x160ce5)+_0x71e3('0x6b')]):![];}}break;case _0x71e3('0x6c'):case _0x71e3('0x6d'):if(_0x5ca3e4['channel']===_0x160ce5){return _0x5ca3e4[_0x71e3('0x6e')]?operators[_0x5bee9b[_0x71e3('0x68')]](_0x5bee9b[_0x71e3('0x69')],_0x5ca3e4[_0x71e3('0x6e')]):![];}break;case'queue':return _0x5ca3e4['queue']?operators[_0x5bee9b[_0x71e3('0x68')]](_0x5bee9b[_0x71e3('0x69')],_0x5ca3e4[_0x71e3('0x6f')]):![];case _0x71e3('0x70'):return _0x5ca3e4['membername']?operators[_0x5bee9b[_0x71e3('0x68')]](_0x5bee9b[_0x71e3('0x69')],_0x5ca3e4['membername']):![];case _0x71e3('0x71'):return _0x5ca3e4[_0x71e3('0x71')]?operators[_0x5bee9b[_0x71e3('0x68')]](_0x5bee9b[_0x71e3('0x69')],_0x5ca3e4[_0x71e3('0x71')]):![];case _0x71e3('0x58'):return _0x5ca3e4[_0x71e3('0x58')]?operators[_0x5bee9b[_0x71e3('0x68')]](_0x5bee9b[_0x71e3('0x69')],_0x5ca3e4[_0x71e3('0x58')]):![];}return![];};};module[_0x71e3('0x72')]=Trigger;