Built motion from commit (unavailable).|2.5.16
[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 _0x0585=['voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentcomplete','custom:agentbusy','custom:agentcongestion','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','info','stringify','emit','clone','interface','checkTriggers','hasOwnProperty','status','merge','variables','Actions','length','action','toLowerCase','contactmanager','motionbar','data1','data2','render','html','template\x20not\x20found','isNil','data3','data4','location','uriLocation','windowWidth','data5','windowHeight','data6','600','winArguments','format','user:%s','name','jscripty','trigger:%s','exec','integration','queue','routeId','urlforward','parse','query','search','checkTrigger','AllConditions','checkConditions','some','AnyConditions','channel','field','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','event','agent','membername','lastevent','exports','util','lodash','mustache','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','redis','defaults','socket.io-emitter','popup','url','winapp','triggers','agents'];(function(_0x1857c6,_0x48840c){var _0x51011c=function(_0x3a4736){while(--_0x3a4736){_0x1857c6['push'](_0x1857c6['shift']());}};_0x51011c(++_0x48840c);}(_0x0585,0x1ba));var _0x5058=function(_0xd1a252,_0x16396f){_0xd1a252=_0xd1a252-0x0;var _0x560ee1=_0x0585[_0xd1a252];return _0x560ee1;};'use strict';var util=require(_0x5058('0x0'));var _=require(_0x5058('0x1'));var url=require('url');var Mustache=require(_0x5058('0x2'));var Redis=require('ioredis');var urlforward=require(_0x5058('0x3'));var integration=require(_0x5058('0x4'));var cmContact=require(_0x5058('0x5'));var script=require(_0x5058('0x6'));var config=require(_0x5058('0x7'));var logger=require(_0x5058('0x8'))(_0x5058('0x9'));var ami=require('../ami');config[_0x5058('0xa')]=_[_0x5058('0xb')](config[_0x5058('0xa')],{'host':'localhost','port':0x18eb});var io=require(_0x5058('0xc'))(new Redis(config[_0x5058('0xa')]));var operators={'equals':function(_0x1af4d1,_0x2e4815){return _0x1af4d1==_0x2e4815;},'not_equals':function(_0x1745d8,_0x4d6797){return _0x1745d8!=_0x4d6797;}};var barAndWebActions=[_0x5058('0xd'),_0x5058('0xe'),_0x5058('0xf')];function Trigger(_0x34be29){this[_0x5058('0x10')]=_0x34be29[_0x5058('0x10')];this['agents']=_0x34be29[_0x5058('0x11')];this[_0x5058('0x12')]=_0x34be29['voiceQueues'];this[_0x5058('0x13')]=_0x34be29[_0x5058('0x13')];this[_0x5058('0x14')]=_0x34be29[_0x5058('0x14')];this[_0x5058('0x15')]=_0x34be29[_0x5058('0x15')];this[_0x5058('0x16')]=_0x34be29['freshdeskAccounts'];this['salesforceAccounts']=_0x34be29[_0x5058('0x17')];this[_0x5058('0x18')]=_0x34be29[_0x5058('0x18')];this[_0x5058('0x19')]=_0x34be29[_0x5058('0x19')];this[_0x5058('0x1a')]=_0x34be29[_0x5058('0x1a')];this[_0x5058('0x1b')]=_0x34be29[_0x5058('0x1b')];this[_0x5058('0x1c')]=_0x34be29[_0x5058('0x1c')];this[_0x5058('0x1d')]=_0x34be29[_0x5058('0x1d')];this[_0x5058('0x1e')]=_0x34be29[_0x5058('0x1e')];this[_0x5058('0x1f')]={'zendesk':this['zendeskAccounts'],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0x5058('0x16')],'sugarcrm':this[_0x5058('0x18')],'zoho':this[_0x5058('0x19')],'desk':this[_0x5058('0x1a')],'vtiger':this[_0x5058('0x1b')],'dynamics365':this['dynamics365Accounts'],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0x5058('0x1c')]};ami['on'](_0x5058('0x20'),this[_0x5058('0x21')][_0x5058('0x22')](this));ami['on'](_0x5058('0x23'),this[_0x5058('0x21')][_0x5058('0x22')](this));ami['on'](_0x5058('0x24'),this['syncCustomEvent'][_0x5058('0x22')](this));ami['on'](_0x5058('0x25'),this[_0x5058('0x21')]['bind'](this));ami['on']('custom:agentnosuchnumber',this[_0x5058('0x21')][_0x5058('0x22')](this));ami['on']('custom:agentnoanswer',this[_0x5058('0x21')][_0x5058('0x22')](this));ami['on'](_0x5058('0x26'),this[_0x5058('0x21')]['bind'](this));ami['on'](_0x5058('0x27'),this[_0x5058('0x21')][_0x5058('0x22')](this));ami['on']('custom:agentreject',this['syncCustomEvent']['bind'](this));ami['on'](_0x5058('0x28'),this['syncCustomEvent'][_0x5058('0x22')](this));ami['on'](_0x5058('0x29'),this['syncCustomEvent'][_0x5058('0x22')](this));ami['on'](_0x5058('0x2a'),this[_0x5058('0x2b')][_0x5058('0x22')](this));ami['on']('custom:dialconnect',this[_0x5058('0x2b')][_0x5058('0x22')](this));ami['on'](_0x5058('0x2c'),this['syncAgentDial']['bind'](this));ami['on'](_0x5058('0x2d'),this[_0x5058('0x21')][_0x5058('0x22')](this));ami['on'](_0x5058('0x2e'),this[_0x5058('0x21')]['bind'](this));ami['on'](_0x5058('0x2f'),this['syncCustomEvent'][_0x5058('0x22')](this));ami['on'](_0x5058('0x30'),this['syncCustomEvent']['bind'](this));ami['on'](_0x5058('0x31'),this[_0x5058('0x21')][_0x5058('0x22')](this));ami['on'](_0x5058('0x32'),this['syncCustomEvent'][_0x5058('0x22')](this));}Trigger[_0x5058('0x33')]['emit']=function(_0x3fef9b,_0x524e9b,_0x4f69e9){logger[_0x5058('0x34')](_0x3fef9b,_0x524e9b,JSON[_0x5058('0x35')](_0x4f69e9));io['to'](_0x3fef9b)[_0x5058('0x36')](_0x524e9b,_0x4f69e9);};Trigger[_0x5058('0x33')][_0x5058('0x21')]=function(_0x198190){var _0x3fbe53=_[_0x5058('0x37')](_0x198190);this['checkTriggers'](_0x3fbe53);};Trigger['prototype'][_0x5058('0x2b')]=function(_0x44e3d0){if(this[_0x5058('0x11')][_0x44e3d0[_0x5058('0x38')]]){this[_0x5058('0x21')](_0x44e3d0);}};Trigger[_0x5058('0x33')][_0x5058('0x39')]=function(_0x280732){var _0x18d237;for(var _0x221a66 in this['triggers']){if(this[_0x5058('0x10')][_0x5058('0x3a')](_0x221a66)){if(this[_0x5058('0x10')][_0x221a66][_0x5058('0x3b')]){_0x18d237=this['checkTrigger'](this['triggers'][_0x221a66],_0x280732);if(_0x18d237){_[_0x5058('0x3c')](_0x280732,_0x280732[_0x5058('0x3d')]);for(var _0x329368=0x0,_0x31e91a,_0x4ebbfb,_0x1aee06;_0x329368<this['triggers'][_0x221a66][_0x5058('0x3e')][_0x5058('0x3f')];_0x329368+=0x1){_0x31e91a=this[_0x5058('0x10')][_0x221a66][_0x5058('0x3e')][_0x329368];if(this[_0x5058('0x11')][_0x280732['interface']]){switch(_0x31e91a[_0x5058('0x40')][_0x5058('0x41')]()){case _0x5058('0x42'):break;case _0x5058('0x43'):case'browser':var _0x32623c={};switch(barAndWebActions[_0x31e91a[_0x5058('0x44')]]){case _0x5058('0xd'):_0x32623c['TemplateId']=_0x31e91a[_0x5058('0x45')];_0x32623c['html']=this[_0x5058('0x13')][_0x31e91a[_0x5058('0x45')]]?Mustache[_0x5058('0x46')](this[_0x5058('0x13')][_0x31e91a[_0x5058('0x45')]][_0x5058('0x47')],_0x280732):_0x5058('0x48');break;case'url':_0x32623c['uri']=this['buildUri'](_0x31e91a[_0x5058('0x45')],_0x280732,_[_0x5058('0x49')](_0x31e91a['data3'])?!![]:parseInt(_0x31e91a[_0x5058('0x4a')],0xa));if(_[_0x5058('0x49')](_0x31e91a[_0x5058('0x4b')])){_0x32623c[_0x5058('0x4c')]='0';}else{_0x32623c[_0x5058('0x4d')]=_0x31e91a[_0x5058('0x4b')];_0x32623c[_0x5058('0x4e')]=_[_0x5058('0x49')](_0x31e91a[_0x5058('0x4f')])?'800':_0x31e91a[_0x5058('0x4f')];_0x32623c[_0x5058('0x50')]=_[_0x5058('0x49')](_0x31e91a[_0x5058('0x51')])?_0x5058('0x52'):_0x31e91a[_0x5058('0x51')];}break;case _0x5058('0xf'):_0x32623c['winApplication']=_0x31e91a['data2']?Mustache[_0x5058('0x46')](_0x31e91a['data2'],_0x280732):'';_0x32623c[_0x5058('0x53')]=_0x31e91a['data3']?Mustache[_0x5058('0x46')](_0x31e91a[_0x5058('0x4a')],_0x280732):'';break;}this[_0x5058('0x36')](util[_0x5058('0x54')](_0x5058('0x55'),this[_0x5058('0x11')][_0x280732[_0x5058('0x38')]][_0x5058('0x56')]),util['format']('trigger:%s:%s',_0x31e91a[_0x5058('0x40')][_0x5058('0x41')](),barAndWebActions[_0x31e91a[_0x5058('0x44')]]),_['merge'](_0x32623c,_0x280732));break;case _0x5058('0x57'):this['emit'](util[_0x5058('0x54')](_0x5058('0x55'),this[_0x5058('0x11')][_0x280732[_0x5058('0x38')]][_0x5058('0x56')]),util[_0x5058('0x54')](_0x5058('0x58'),_0x31e91a[_0x5058('0x40')][_0x5058('0x41')]()),_[_0x5058('0x3c')]({'ProjectId':parseInt(_0x31e91a[_0x5058('0x44')],0xa)},_0x280732));break;default:this[_0x5058('0x36')](util[_0x5058('0x54')](_0x5058('0x55'),this[_0x5058('0x11')][_0x280732[_0x5058('0x38')]]['name']),util[_0x5058('0x54')](_0x5058('0x58'),_0x31e91a[_0x5058('0x40')][_0x5058('0x41')]()),_['merge']({},_0x31e91a,_0x280732));}}switch(_0x31e91a[_0x5058('0x40')][_0x5058('0x41')]()){case _0x5058('0x42'):cmContact[_0x5058('0x59')](this[_0x5058('0x11')][_0x280732[_0x5058('0x38')]],this[_0x5058('0x10')][_0x221a66],_0x31e91a,_0x280732);break;case _0x5058('0x5a'):integration[_0x5058('0x59')](_0x31e91a,_0x280732,this['accounts'],this[_0x5058('0x11')][_0x280732[_0x5058('0x38')]],this[_0x5058('0x12')][_0x280732[_0x5058('0x5b')]],this[_0x5058('0x14')][_0x280732[_0x5058('0x5c')]]);break;case _0x5058('0x5d'):urlforward[_0x5058('0x59')](_0x31e91a,_0x280732);break;case'script':script[_0x5058('0x59')](_0x31e91a,_0x280732);break;}}}}}}};Trigger[_0x5058('0x33')]['buildUri']=function(_0x3d0613,_0x26c9b3,_0x14c22e){var _0x4c69b2=url[_0x5058('0x5e')](Mustache[_0x5058('0x46')](_0x3d0613,_0x26c9b3),!![]);if(_0x14c22e){_[_0x5058('0x3c')](_0x4c69b2[_0x5058('0x5f')],_0x26c9b3);}delete _0x4c69b2[_0x5058('0x60')];var _0x5955c7=url[_0x5058('0x54')](_0x4c69b2);_0x5955c7=_0x5955c7['replace'](/\/\?/g,'?');return _0x5955c7;};Trigger[_0x5058('0x33')][_0x5058('0x61')]=function(_0x4a7efe,_0x294327){var _0x1ec474=!![],_0x5d6c55=!![];if(_0x4a7efe[_0x5058('0x62')][_0x5058('0x3f')]){_0x1ec474=_['every'](_0x4a7efe[_0x5058('0x62')],this[_0x5058('0x63')](_0x294327,_0x4a7efe['channel']));}if(_0x4a7efe['AnyConditions'][_0x5058('0x3f')]){_0x5d6c55=_[_0x5058('0x64')](_0x4a7efe[_0x5058('0x65')],this[_0x5058('0x63')](_0x294327,_0x4a7efe[_0x5058('0x66')]));}return _0x1ec474&&_0x5d6c55;};Trigger[_0x5058('0x33')]['checkConditions']=function(_0x5353ec,_0x281f43){return function(_0x52e75e){switch(_0x52e75e[_0x5058('0x67')]){case'account':if(_0x5353ec[_0x5058('0x66')]===_0x281f43){if(_0x281f43===_0x5058('0x68')){return _0x5353ec[_0x5058('0x69')]?operators[_0x52e75e[_0x5058('0x6a')]](Number(_0x52e75e[_0x5058('0x6b')]),_0x5353ec[_0x5058('0x69')]):![];}else{return _0x5353ec[_[_0x5058('0x6c')](_0x281f43)+_0x5058('0x6d')]?operators[_0x52e75e[_0x5058('0x6a')]](Number(_0x52e75e[_0x5058('0x6b')]),_0x5353ec[_[_0x5058('0x6c')](_0x281f43)+_0x5058('0x6d')]):![];}}break;case'interaction':case'message':if(_0x5353ec['channel']===_0x281f43){return _0x5353ec[_0x5058('0x6e')]?operators[_0x52e75e[_0x5058('0x6a')]](_0x52e75e[_0x5058('0x6b')],_0x5353ec[_0x5058('0x6e')]):![];}break;case'queue':return _0x5353ec[_0x5058('0x5b')]?operators[_0x52e75e[_0x5058('0x6a')]](_0x52e75e[_0x5058('0x6b')],_0x5353ec[_0x5058('0x5b')]):![];case _0x5058('0x6f'):return _0x5353ec[_0x5058('0x70')]?operators[_0x52e75e['operator']](_0x52e75e[_0x5058('0x6b')],_0x5353ec['membername']):![];case _0x5058('0x71'):return _0x5353ec[_0x5058('0x71')]?operators[_0x52e75e[_0x5058('0x6a')]](_0x52e75e['value'],_0x5353ec[_0x5058('0x71')]):![];case _0x5058('0x5c'):return _0x5353ec[_0x5058('0x5c')]?operators[_0x52e75e['operator']](_0x52e75e[_0x5058('0x6b')],_0x5353ec[_0x5058('0x5c')]):![];}return![];};};module[_0x5058('0x72')]=Trigger;