Built motion from commit 14588770.|2.5.38
[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 _0x91e1=['buildUri','data3','isNil','data4','location','windowWidth','data5','800','windowHeight','data6','winApplication','winArguments','format','user:%s','trigger:%s:%s','toLowerCase','jscripty','name','trigger:%s','exec','integration','queue','routeId','urlforward','script','parse','query','search','channel','AllConditions','AnyConditions','checkConditions','field','chat','ChatWebsiteId','operator','upperFirst','AccountId','value','message','event','membername','lastevent','mailSubstatus','null','substatus','exports','lodash','url','ioredis','./urlforward','./integration','./cmContact','../../../config/environment','../../../config/logger','trigger','../ami','redis','localhost','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','bind','custom:agentconnect','syncCustomEvent','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:dialbegin','syncAgentDial','custom:dialend','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','info','stringify','clone','motionChannel','undefined','voice','checkTriggers','interface','hasOwnProperty','checkTrigger','merge','variables','Actions','length','action','contactmanager','browser','data1','html','data2','render','template\x20not\x20found','uri'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x91e1,0x125));var _0x191e=function(_0x2e61b4,_0x2387e3){_0x2e61b4=_0x2e61b4-0x0;var _0x5dc6ea=_0x91e1[_0x2e61b4];return _0x5dc6ea;};'use strict';var util=require('util');var _=require(_0x191e('0x0'));var url=require(_0x191e('0x1'));var Mustache=require('mustache');var Redis=require(_0x191e('0x2'));var urlforward=require(_0x191e('0x3'));var integration=require(_0x191e('0x4'));var cmContact=require(_0x191e('0x5'));var script=require('./script');var config=require(_0x191e('0x6'));var logger=require(_0x191e('0x7'))(_0x191e('0x8'));var ami=require(_0x191e('0x9'));config[_0x191e('0xa')]=_['defaults'](config[_0x191e('0xa')],{'host':_0x191e('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x191e('0xa')]));var operators={'equals':function(_0x5e1dd3,_0x18ef31){return _0x5e1dd3==_0x18ef31;},'not_equals':function(_0x3ce16a,_0x3cfbab){return _0x3ce16a!=_0x3cfbab;}};var barAndWebActions=[_0x191e('0xc'),_0x191e('0x1'),_0x191e('0xd')];function Trigger(_0x5780af){this[_0x191e('0xe')]=_0x5780af[_0x191e('0xe')];this[_0x191e('0xf')]=_0x5780af[_0x191e('0xf')];this[_0x191e('0x10')]=_0x5780af[_0x191e('0x10')];this['templates']=_0x5780af[_0x191e('0x11')];this[_0x191e('0x12')]=_0x5780af[_0x191e('0x12')];this[_0x191e('0x13')]=_0x5780af['zendeskAccounts'];this[_0x191e('0x14')]=_0x5780af[_0x191e('0x14')];this[_0x191e('0x15')]=_0x5780af[_0x191e('0x15')];this[_0x191e('0x16')]=_0x5780af[_0x191e('0x16')];this[_0x191e('0x17')]=_0x5780af[_0x191e('0x17')];this['deskAccounts']=_0x5780af[_0x191e('0x18')];this[_0x191e('0x19')]=_0x5780af[_0x191e('0x19')];this[_0x191e('0x1a')]=_0x5780af[_0x191e('0x1a')];this[_0x191e('0x1b')]=_0x5780af[_0x191e('0x1b')];this[_0x191e('0x1c')]=_0x5780af[_0x191e('0x1c')];this[_0x191e('0x1d')]={'zendesk':this[_0x191e('0x13')],'salesforce':this[_0x191e('0x15')],'freshdesk':this[_0x191e('0x14')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this[_0x191e('0x17')],'desk':this['deskAccounts'],'vtiger':this['vtigerAccounts'],'dynamics365':this['dynamics365Accounts'],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0x191e('0x1a')]};ami['on'](_0x191e('0x1e'),this['syncCustomEvent'][_0x191e('0x1f')](this));ami['on'](_0x191e('0x20'),this[_0x191e('0x21')][_0x191e('0x1f')](this));ami['on']('custom:agentringnoanswer',this['syncCustomEvent'][_0x191e('0x1f')](this));ami['on'](_0x191e('0x22'),this['syncCustomEvent'][_0x191e('0x1f')](this));ami['on'](_0x191e('0x23'),this[_0x191e('0x21')]['bind'](this));ami['on'](_0x191e('0x24'),this['syncCustomEvent'][_0x191e('0x1f')](this));ami['on'](_0x191e('0x25'),this['syncCustomEvent']['bind'](this));ami['on'](_0x191e('0x26'),this[_0x191e('0x21')][_0x191e('0x1f')](this));ami['on'](_0x191e('0x27'),this[_0x191e('0x21')][_0x191e('0x1f')](this));ami['on'](_0x191e('0x28'),this[_0x191e('0x21')][_0x191e('0x1f')](this));ami['on'](_0x191e('0x29'),this['syncCustomEvent'][_0x191e('0x1f')](this));ami['on']('custom:timeout',this[_0x191e('0x21')]['bind'](this));ami['on'](_0x191e('0x2a'),this[_0x191e('0x2b')][_0x191e('0x1f')](this));ami['on']('custom:dialconnect',this[_0x191e('0x2b')][_0x191e('0x1f')](this));ami['on'](_0x191e('0x2c'),this[_0x191e('0x2b')]['bind'](this));ami['on']('custom:newinteraction',this[_0x191e('0x21')][_0x191e('0x1f')](this));ami['on'](_0x191e('0x2d'),this[_0x191e('0x21')][_0x191e('0x1f')](this));ami['on'](_0x191e('0x2e'),this['syncCustomEvent'][_0x191e('0x1f')](this));ami['on'](_0x191e('0x2f'),this[_0x191e('0x21')][_0x191e('0x1f')](this));ami['on'](_0x191e('0x30'),this[_0x191e('0x21')][_0x191e('0x1f')](this));ami['on'](_0x191e('0x31'),this[_0x191e('0x21')]['bind'](this));ami['on'](_0x191e('0x32'),this[_0x191e('0x21')][_0x191e('0x1f')](this));}Trigger[_0x191e('0x33')][_0x191e('0x34')]=function(_0x44bcb0,_0x484055,_0x459791){logger[_0x191e('0x35')](_0x44bcb0,_0x484055,JSON[_0x191e('0x36')](_0x459791));io['to'](_0x44bcb0)[_0x191e('0x34')](_0x484055,_0x459791);};Trigger[_0x191e('0x33')]['syncCustomEvent']=function(_0x1f5546){var _0x3455c3=_[_0x191e('0x37')](_0x1f5546);if(typeof _0x3455c3[_0x191e('0x38')]===_0x191e('0x39')){_0x3455c3[_0x191e('0x38')]=_0x191e('0x3a');}this[_0x191e('0x3b')](_0x3455c3);};Trigger[_0x191e('0x33')]['syncAgentDial']=function(_0x5e0870){if(this['agents'][_0x5e0870[_0x191e('0x3c')]]){this[_0x191e('0x21')](_0x5e0870);}};Trigger[_0x191e('0x33')][_0x191e('0x3b')]=function(_0x30308f){var _0x57d662;for(var _0x580b90 in this[_0x191e('0xe')]){if(this[_0x191e('0xe')][_0x191e('0x3d')](_0x580b90)){if(this[_0x191e('0xe')][_0x580b90]['status']){_0x57d662=this[_0x191e('0x3e')](this[_0x191e('0xe')][_0x580b90],_0x30308f);if(_0x57d662){_[_0x191e('0x3f')](_0x30308f,_0x30308f[_0x191e('0x40')]);for(var _0x182962=0x0,_0xb49861,_0x46d340,_0x34ae30;_0x182962<this[_0x191e('0xe')][_0x580b90][_0x191e('0x41')][_0x191e('0x42')];_0x182962+=0x1){_0xb49861=this['triggers'][_0x580b90][_0x191e('0x41')][_0x182962];if(this[_0x191e('0xf')][_0x30308f[_0x191e('0x3c')]]){switch(_0xb49861[_0x191e('0x43')]['toLowerCase']()){case _0x191e('0x44'):break;case'motionbar':case _0x191e('0x45'):var _0x228f87={};switch(barAndWebActions[_0xb49861[_0x191e('0x46')]]){case _0x191e('0xc'):_0x228f87['TemplateId']=_0xb49861['data2'];_0x228f87[_0x191e('0x47')]=this['templates'][_0xb49861[_0x191e('0x48')]]?Mustache[_0x191e('0x49')](this['templates'][_0xb49861['data2']][_0x191e('0x47')],_0x30308f):_0x191e('0x4a');break;case _0x191e('0x1'):_0x228f87[_0x191e('0x4b')]=this[_0x191e('0x4c')](_0xb49861[_0x191e('0x48')],_0x30308f,_['isNil'](_0xb49861['data3'])?!![]:parseInt(_0xb49861[_0x191e('0x4d')],0xa));if(_[_0x191e('0x4e')](_0xb49861[_0x191e('0x4f')])){_0x228f87[_0x191e('0x50')]='0';}else{_0x228f87['uriLocation']=_0xb49861[_0x191e('0x4f')];_0x228f87[_0x191e('0x51')]=_[_0x191e('0x4e')](_0xb49861[_0x191e('0x52')])?_0x191e('0x53'):_0xb49861[_0x191e('0x52')];_0x228f87[_0x191e('0x54')]=_[_0x191e('0x4e')](_0xb49861[_0x191e('0x55')])?'600':_0xb49861[_0x191e('0x55')];}break;case _0x191e('0xd'):_0x228f87[_0x191e('0x56')]=_0xb49861[_0x191e('0x48')]?Mustache[_0x191e('0x49')](_0xb49861[_0x191e('0x48')],_0x30308f):'';_0x228f87[_0x191e('0x57')]=_0xb49861[_0x191e('0x4d')]?Mustache[_0x191e('0x49')](_0xb49861['data3'],_0x30308f):'';break;}this['emit'](util[_0x191e('0x58')](_0x191e('0x59'),this[_0x191e('0xf')][_0x30308f[_0x191e('0x3c')]]['name']),util[_0x191e('0x58')](_0x191e('0x5a'),_0xb49861[_0x191e('0x43')][_0x191e('0x5b')](),barAndWebActions[_0xb49861[_0x191e('0x46')]]),_[_0x191e('0x3f')](_0x228f87,_0x30308f));break;case _0x191e('0x5c'):this['emit'](util[_0x191e('0x58')](_0x191e('0x59'),this[_0x191e('0xf')][_0x30308f[_0x191e('0x3c')]][_0x191e('0x5d')]),util[_0x191e('0x58')](_0x191e('0x5e'),_0xb49861[_0x191e('0x43')][_0x191e('0x5b')]()),_[_0x191e('0x3f')]({'ProjectId':parseInt(_0xb49861[_0x191e('0x46')],0xa)},_0x30308f));break;default:this['emit'](util[_0x191e('0x58')](_0x191e('0x59'),this[_0x191e('0xf')][_0x30308f[_0x191e('0x3c')]][_0x191e('0x5d')]),util[_0x191e('0x58')]('trigger:%s',_0xb49861[_0x191e('0x43')][_0x191e('0x5b')]()),_[_0x191e('0x3f')]({},_0xb49861,_0x30308f));}}switch(_0xb49861['action']['toLowerCase']()){case'contactmanager':cmContact[_0x191e('0x5f')](this['agents'][_0x30308f[_0x191e('0x3c')]],this[_0x191e('0xe')][_0x580b90],_0xb49861,_0x30308f);break;case _0x191e('0x60'):integration[_0x191e('0x5f')](_0xb49861,_0x30308f,this[_0x191e('0x1d')],this[_0x191e('0xf')][_0x30308f[_0x191e('0x3c')]],this[_0x191e('0x10')][_0x30308f[_0x191e('0x61')]],this[_0x191e('0x12')][_0x30308f[_0x191e('0x62')]]);break;case _0x191e('0x63'):urlforward[_0x191e('0x5f')](_0xb49861,_0x30308f);break;case _0x191e('0x64'):script[_0x191e('0x5f')](_0xb49861,_0x30308f);break;}}}}}}};Trigger[_0x191e('0x33')][_0x191e('0x4c')]=function(_0x41df6d,_0x294a18,_0x57a0be){var _0x57ad57=url[_0x191e('0x65')](Mustache[_0x191e('0x49')](_0x41df6d,_0x294a18),!![]);if(_0x57a0be){_[_0x191e('0x3f')](_0x57ad57[_0x191e('0x66')],_0x294a18);}delete _0x57ad57[_0x191e('0x67')];var _0x559b53=url[_0x191e('0x58')](_0x57ad57);_0x559b53=_0x559b53['replace'](/\/\?/g,'?');return _0x559b53;};Trigger[_0x191e('0x33')]['checkTrigger']=function(_0x17a4cf,_0x3be7ee){var _0x2c4cca=!![];var _0x347e2b=!![];var _0x4edb35=![];if(_0x17a4cf[_0x191e('0x68')]===_0x3be7ee[_0x191e('0x38')]){_0x4edb35=!![];}if(_0x17a4cf['AllConditions']['length']){_0x2c4cca=_['every'](_0x17a4cf[_0x191e('0x69')],this['checkConditions'](_0x3be7ee,_0x17a4cf[_0x191e('0x68')]));}if(_0x17a4cf[_0x191e('0x6a')][_0x191e('0x42')]){_0x347e2b=_['some'](_0x17a4cf[_0x191e('0x6a')],this[_0x191e('0x6b')](_0x3be7ee,_0x17a4cf['channel']));}return _0x4edb35&&_0x2c4cca&&_0x347e2b;};Trigger['prototype'][_0x191e('0x6b')]=function(_0x5d625c,_0x347966){return function(_0x222bee){switch(_0x222bee[_0x191e('0x6c')]){case'account':if(_0x5d625c[_0x191e('0x68')]===_0x347966){if(_0x347966===_0x191e('0x6d')){return _0x5d625c[_0x191e('0x6e')]?operators[_0x222bee[_0x191e('0x6f')]](Number(_0x222bee['value']),_0x5d625c[_0x191e('0x6e')]):![];}else{return _0x5d625c[_[_0x191e('0x70')](_0x347966)+_0x191e('0x71')]?operators[_0x222bee[_0x191e('0x6f')]](Number(_0x222bee[_0x191e('0x72')]),_0x5d625c[_[_0x191e('0x70')](_0x347966)+_0x191e('0x71')]):![];}}break;case'interaction':case _0x191e('0x73'):if(_0x5d625c[_0x191e('0x68')]===_0x347966){return _0x5d625c['event']?operators[_0x222bee['operator']](_0x222bee['value'],_0x5d625c[_0x191e('0x74')]):![];}break;case _0x191e('0x61'):return _0x5d625c[_0x191e('0x61')]?operators[_0x222bee[_0x191e('0x6f')]](_0x222bee[_0x191e('0x72')],_0x5d625c[_0x191e('0x61')]):![];case'agent':return _0x5d625c[_0x191e('0x75')]?operators[_0x222bee['operator']](_0x222bee[_0x191e('0x72')],_0x5d625c[_0x191e('0x75')]):![];case _0x191e('0x76'):return _0x5d625c['lastevent']?operators[_0x222bee[_0x191e('0x6f')]](_0x222bee['value'],_0x5d625c[_0x191e('0x76')]):![];case _0x191e('0x62'):return _0x5d625c[_0x191e('0x62')]?operators[_0x222bee['operator']](_0x222bee[_0x191e('0x72')],_0x5d625c[_0x191e('0x62')]):![];case _0x191e('0x77'):if(_0x222bee[_0x191e('0x72')]===_0x191e('0x78'))_0x222bee[_0x191e('0x72')]=null;return typeof _0x5d625c[_0x191e('0x79')]!==_0x191e('0x39')?operators[_0x222bee[_0x191e('0x6f')]](_0x222bee[_0x191e('0x72')],_0x5d625c[_0x191e('0x79')]):![];}return![];};};module[_0x191e('0x7a')]=Trigger;