Built motion from commit e0fa946e.|2.6.5
[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 _0xa280=['hasOwnProperty','status','checkTrigger','merge','variables','Actions','action','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','data2','html','render','url','uri','data3','isNil','data4','location','uriLocation','windowWidth','data5','800','600','data6','winApplication','user:%s','name','format','trigger:%s:%s','jscripty','trigger:%s','exec','integration','queue','routeId','urlforward','buildUri','parse','query','search','replace','AllConditions','every','length','some','AnyConditions','channel','checkConditions','field','chat','ChatWebsiteId','operator','value','AccountId','upperFirst','interaction','message','event','membername','lastevent','null','substatus','offlineMessage','util','lodash','mustache','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','defaults','localhost','socket.io-emitter','popup','winapp','agents','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:agentnoanswer','custom:agentbusy','custom:amd','custom:queuecallerabandon','custom:dialbegin','syncAgentDial','custom:dialend','custom:newinteraction','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','prototype','emit','info','stringify','clone','motionChannel','undefined','voice','interface','checkTriggers','triggers'];(function(_0x200442,_0x594cc4){var _0x1ac8f3=function(_0x29281f){while(--_0x29281f){_0x200442['push'](_0x200442['shift']());}};_0x1ac8f3(++_0x594cc4);}(_0xa280,0xc4));var _0x0a28=function(_0x190cd7,_0x454756){_0x190cd7=_0x190cd7-0x0;var _0x4ac15d=_0xa280[_0x190cd7];return _0x4ac15d;};'use strict';var util=require(_0x0a28('0x0'));var _=require(_0x0a28('0x1'));var url=require('url');var Mustache=require(_0x0a28('0x2'));var Redis=require(_0x0a28('0x3'));var urlforward=require(_0x0a28('0x4'));var integration=require(_0x0a28('0x5'));var cmContact=require(_0x0a28('0x6'));var script=require(_0x0a28('0x7'));var config=require(_0x0a28('0x8'));var logger=require(_0x0a28('0x9'))(_0x0a28('0xa'));var ami=require(_0x0a28('0xb'));config[_0x0a28('0xc')]=_[_0x0a28('0xd')](config[_0x0a28('0xc')],{'host':_0x0a28('0xe'),'port':0x18eb});var io=require(_0x0a28('0xf'))(new Redis(config[_0x0a28('0xc')]));var operators={'equals':function(_0x360652,_0x2654f1){return _0x360652==_0x2654f1;},'not_equals':function(_0x510856,_0x11b36e){return _0x510856!=_0x11b36e;}};var barAndWebActions=[_0x0a28('0x10'),'url',_0x0a28('0x11')];function Trigger(_0x1ad1ef){this['triggers']=_0x1ad1ef['triggers'];this[_0x0a28('0x12')]=_0x1ad1ef[_0x0a28('0x12')];this[_0x0a28('0x13')]=_0x1ad1ef[_0x0a28('0x13')];this[_0x0a28('0x14')]=_0x1ad1ef[_0x0a28('0x14')];this[_0x0a28('0x15')]=_0x1ad1ef['voiceExtensions'];this[_0x0a28('0x16')]=_0x1ad1ef[_0x0a28('0x16')];this['freshdeskAccounts']=_0x1ad1ef[_0x0a28('0x17')];this[_0x0a28('0x18')]=_0x1ad1ef[_0x0a28('0x18')];this[_0x0a28('0x19')]=_0x1ad1ef['sugarcrmAccounts'];this[_0x0a28('0x1a')]=_0x1ad1ef[_0x0a28('0x1a')];this[_0x0a28('0x1b')]=_0x1ad1ef[_0x0a28('0x1b')];this['vtigerAccounts']=_0x1ad1ef[_0x0a28('0x1c')];this[_0x0a28('0x1d')]=_0x1ad1ef[_0x0a28('0x1d')];this[_0x0a28('0x1e')]=_0x1ad1ef['dynamics365Accounts'];this['freshsalesAccounts']=_0x1ad1ef[_0x0a28('0x1f')];this[_0x0a28('0x20')]={'zendesk':this[_0x0a28('0x16')],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0x0a28('0x17')],'sugarcrm':this[_0x0a28('0x19')],'zoho':this[_0x0a28('0x1a')],'desk':this['deskAccounts'],'vtiger':this[_0x0a28('0x1c')],'dynamics365':this[_0x0a28('0x1e')],'freshsales':this[_0x0a28('0x1f')],'servicenow':this['servicenowAccounts']};ami['on'](_0x0a28('0x21'),this[_0x0a28('0x22')][_0x0a28('0x23')](this));ami['on'](_0x0a28('0x24'),this[_0x0a28('0x22')][_0x0a28('0x23')](this));ami['on'](_0x0a28('0x25'),this[_0x0a28('0x22')]['bind'](this));ami['on'](_0x0a28('0x26'),this[_0x0a28('0x22')]['bind'](this));ami['on']('custom:agentnosuchnumber',this['syncCustomEvent'][_0x0a28('0x23')](this));ami['on'](_0x0a28('0x27'),this[_0x0a28('0x22')][_0x0a28('0x23')](this));ami['on'](_0x0a28('0x28'),this[_0x0a28('0x22')]['bind'](this));ami['on']('custom:agentcongestion',this[_0x0a28('0x22')]['bind'](this));ami['on']('custom:agentreject',this[_0x0a28('0x22')][_0x0a28('0x23')](this));ami['on'](_0x0a28('0x29'),this[_0x0a28('0x22')][_0x0a28('0x23')](this));ami['on'](_0x0a28('0x2a'),this[_0x0a28('0x22')]['bind'](this));ami['on']('custom:timeout',this[_0x0a28('0x22')][_0x0a28('0x23')](this));ami['on'](_0x0a28('0x2b'),this['syncAgentDial'][_0x0a28('0x23')](this));ami['on']('custom:dialconnect',this[_0x0a28('0x2c')][_0x0a28('0x23')](this));ami['on'](_0x0a28('0x2d'),this[_0x0a28('0x2c')]['bind'](this));ami['on'](_0x0a28('0x2e'),this['syncCustomEvent'][_0x0a28('0x23')](this));ami['on']('custom:closedinteraction',this[_0x0a28('0x22')][_0x0a28('0x23')](this));ami['on']('custom:substatus',this[_0x0a28('0x22')][_0x0a28('0x23')](this));ami['on']('custom:incomingmessage',this[_0x0a28('0x22')][_0x0a28('0x23')](this));ami['on'](_0x0a28('0x2f'),this[_0x0a28('0x22')]['bind'](this));ami['on'](_0x0a28('0x30'),this[_0x0a28('0x22')][_0x0a28('0x23')](this));ami['on'](_0x0a28('0x31'),this[_0x0a28('0x22')][_0x0a28('0x23')](this));ami['on'](_0x0a28('0x32'),this['syncCustomEvent'][_0x0a28('0x23')](this));}Trigger[_0x0a28('0x33')][_0x0a28('0x34')]=function(_0x37ed63,_0x25de2,_0x5def3e){logger[_0x0a28('0x35')](_0x37ed63,_0x25de2,JSON[_0x0a28('0x36')](_0x5def3e));io['to'](_0x37ed63)[_0x0a28('0x34')](_0x25de2,_0x5def3e);};Trigger[_0x0a28('0x33')][_0x0a28('0x22')]=function(_0x304e50){var _0x29c8b4=_[_0x0a28('0x37')](_0x304e50);if(typeof _0x29c8b4[_0x0a28('0x38')]===_0x0a28('0x39')){_0x29c8b4[_0x0a28('0x38')]=_0x0a28('0x3a');}this['checkTriggers'](_0x29c8b4);};Trigger['prototype']['syncAgentDial']=function(_0x2d8004){if(this[_0x0a28('0x12')][_0x2d8004[_0x0a28('0x3b')]]){this[_0x0a28('0x22')](_0x2d8004);}};Trigger[_0x0a28('0x33')][_0x0a28('0x3c')]=function(_0x16c606){var _0x2eadbd;for(var _0x49332d in this['triggers']){if(this[_0x0a28('0x3d')][_0x0a28('0x3e')](_0x49332d)){if(this[_0x0a28('0x3d')][_0x49332d][_0x0a28('0x3f')]){_0x2eadbd=this[_0x0a28('0x40')](this[_0x0a28('0x3d')][_0x49332d],_0x16c606);if(_0x2eadbd){_[_0x0a28('0x41')](_0x16c606,_0x16c606[_0x0a28('0x42')]);for(var _0x54c4fa=0x0,_0xd28f63,_0x8ed734,_0x38de83;_0x54c4fa<this['triggers'][_0x49332d][_0x0a28('0x43')]['length'];_0x54c4fa+=0x1){_0xd28f63=this['triggers'][_0x49332d][_0x0a28('0x43')][_0x54c4fa];if(this[_0x0a28('0x12')][_0x16c606['interface']]){switch(_0xd28f63[_0x0a28('0x44')][_0x0a28('0x45')]()){case _0x0a28('0x46'):break;case _0x0a28('0x47'):case _0x0a28('0x48'):var _0x111884={};switch(barAndWebActions[_0xd28f63[_0x0a28('0x49')]]){case'popup':_0x111884[_0x0a28('0x4a')]=_0xd28f63[_0x0a28('0x4b')];_0x111884[_0x0a28('0x4c')]=this[_0x0a28('0x14')][_0xd28f63[_0x0a28('0x4b')]]?Mustache[_0x0a28('0x4d')](this['templates'][_0xd28f63['data2']][_0x0a28('0x4c')],_0x16c606):'template\x20not\x20found';break;case _0x0a28('0x4e'):_0x111884[_0x0a28('0x4f')]=this['buildUri'](_0xd28f63[_0x0a28('0x4b')],_0x16c606,_['isNil'](_0xd28f63[_0x0a28('0x50')])?!![]:parseInt(_0xd28f63[_0x0a28('0x50')],0xa));if(_[_0x0a28('0x51')](_0xd28f63[_0x0a28('0x52')])){_0x111884[_0x0a28('0x53')]='0';}else{_0x111884[_0x0a28('0x54')]=_0xd28f63[_0x0a28('0x52')];_0x111884[_0x0a28('0x55')]=_[_0x0a28('0x51')](_0xd28f63[_0x0a28('0x56')])?_0x0a28('0x57'):_0xd28f63[_0x0a28('0x56')];_0x111884['windowHeight']=_[_0x0a28('0x51')](_0xd28f63['data6'])?_0x0a28('0x58'):_0xd28f63[_0x0a28('0x59')];}break;case _0x0a28('0x11'):_0x111884[_0x0a28('0x5a')]=_0xd28f63[_0x0a28('0x4b')]?Mustache['render'](_0xd28f63[_0x0a28('0x4b')],_0x16c606):'';_0x111884['winArguments']=_0xd28f63[_0x0a28('0x50')]?Mustache[_0x0a28('0x4d')](_0xd28f63[_0x0a28('0x50')],_0x16c606):'';break;}this['emit'](util['format'](_0x0a28('0x5b'),this[_0x0a28('0x12')][_0x16c606[_0x0a28('0x3b')]][_0x0a28('0x5c')]),util[_0x0a28('0x5d')](_0x0a28('0x5e'),_0xd28f63[_0x0a28('0x44')][_0x0a28('0x45')](),barAndWebActions[_0xd28f63['data1']]),_[_0x0a28('0x41')](_0x111884,_0x16c606));break;case _0x0a28('0x5f'):this[_0x0a28('0x34')](util[_0x0a28('0x5d')](_0x0a28('0x5b'),this[_0x0a28('0x12')][_0x16c606[_0x0a28('0x3b')]][_0x0a28('0x5c')]),util[_0x0a28('0x5d')](_0x0a28('0x60'),_0xd28f63[_0x0a28('0x44')][_0x0a28('0x45')]()),_[_0x0a28('0x41')]({'ProjectId':parseInt(_0xd28f63[_0x0a28('0x49')],0xa)},_0x16c606));break;default:this[_0x0a28('0x34')](util[_0x0a28('0x5d')](_0x0a28('0x5b'),this[_0x0a28('0x12')][_0x16c606[_0x0a28('0x3b')]]['name']),util[_0x0a28('0x5d')](_0x0a28('0x60'),_0xd28f63[_0x0a28('0x44')][_0x0a28('0x45')]()),_[_0x0a28('0x41')]({},_0xd28f63,_0x16c606));}}switch(_0xd28f63[_0x0a28('0x44')][_0x0a28('0x45')]()){case _0x0a28('0x46'):cmContact[_0x0a28('0x61')](this[_0x0a28('0x12')][_0x16c606[_0x0a28('0x3b')]],this[_0x0a28('0x3d')][_0x49332d],_0xd28f63,_0x16c606);break;case _0x0a28('0x62'):integration[_0x0a28('0x61')](_0xd28f63,_0x16c606,this['accounts'],this['agents'][_0x16c606[_0x0a28('0x3b')]],this[_0x0a28('0x13')][_0x16c606[_0x0a28('0x63')]],this['voiceExtensions'][_0x16c606[_0x0a28('0x64')]]);break;case _0x0a28('0x65'):urlforward[_0x0a28('0x61')](_0xd28f63,_0x16c606);break;case'script':script[_0x0a28('0x61')](_0xd28f63,_0x16c606);break;}}}}}}};Trigger[_0x0a28('0x33')][_0x0a28('0x66')]=function(_0x2dbee7,_0x4d2046,_0x5e1d97){var _0x4f072b=url[_0x0a28('0x67')](Mustache[_0x0a28('0x4d')](_0x2dbee7,_0x4d2046),!![]);if(_0x5e1d97){_['merge'](_0x4f072b[_0x0a28('0x68')],_0x4d2046);}delete _0x4f072b[_0x0a28('0x69')];var _0x5753f3=url[_0x0a28('0x5d')](_0x4f072b);_0x5753f3=_0x5753f3[_0x0a28('0x6a')](/\/\?/g,'?');return _0x5753f3;};Trigger['prototype']['checkTrigger']=function(_0xf36bb9,_0x5a0359){var _0x121a5c=!![];var _0x366f9a=!![];var _0x3857d5=![];if(_0xf36bb9['channel']===_0x5a0359[_0x0a28('0x38')]){_0x3857d5=!![];}if(_0xf36bb9[_0x0a28('0x6b')]['length']){_0x121a5c=_[_0x0a28('0x6c')](_0xf36bb9[_0x0a28('0x6b')],this['checkConditions'](_0x5a0359,_0xf36bb9['channel']));}if(_0xf36bb9['AnyConditions'][_0x0a28('0x6d')]){_0x366f9a=_[_0x0a28('0x6e')](_0xf36bb9[_0x0a28('0x6f')],this['checkConditions'](_0x5a0359,_0xf36bb9[_0x0a28('0x70')]));}return _0x3857d5&&_0x121a5c&&_0x366f9a;};Trigger[_0x0a28('0x33')][_0x0a28('0x71')]=function(_0x28b530,_0x360262){return function(_0x5c8968){switch(_0x5c8968[_0x0a28('0x72')]){case'account':if(_0x28b530['channel']===_0x360262){if(_0x360262===_0x0a28('0x73')){return _0x28b530[_0x0a28('0x74')]?operators[_0x5c8968[_0x0a28('0x75')]](Number(_0x5c8968[_0x0a28('0x76')]),_0x28b530[_0x0a28('0x74')]):![];}else{return _0x28b530[_['upperFirst'](_0x360262)+_0x0a28('0x77')]?operators[_0x5c8968[_0x0a28('0x75')]](Number(_0x5c8968[_0x0a28('0x76')]),_0x28b530[_[_0x0a28('0x78')](_0x360262)+_0x0a28('0x77')]):![];}}break;case _0x0a28('0x79'):case _0x0a28('0x7a'):if(_0x28b530[_0x0a28('0x70')]===_0x360262){return _0x28b530[_0x0a28('0x7b')]?operators[_0x5c8968[_0x0a28('0x75')]](_0x5c8968[_0x0a28('0x76')],_0x28b530['event']):![];}break;case _0x0a28('0x63'):return _0x28b530[_0x0a28('0x63')]?operators[_0x5c8968['operator']](_0x5c8968[_0x0a28('0x76')],_0x28b530[_0x0a28('0x63')]):![];case'agent':return _0x28b530[_0x0a28('0x7c')]?operators[_0x5c8968[_0x0a28('0x75')]](_0x5c8968[_0x0a28('0x76')],_0x28b530[_0x0a28('0x7c')]):![];case'lastevent':return _0x28b530[_0x0a28('0x7d')]?operators[_0x5c8968[_0x0a28('0x75')]](_0x5c8968[_0x0a28('0x76')],_0x28b530[_0x0a28('0x7d')]):![];case _0x0a28('0x64'):return _0x28b530['routeId']?operators[_0x5c8968[_0x0a28('0x75')]](_0x5c8968[_0x0a28('0x76')],_0x28b530[_0x0a28('0x64')]):![];case'mailSubstatus':if(_0x5c8968['value']===_0x0a28('0x7e'))_0x5c8968['value']=null;return typeof _0x28b530[_0x0a28('0x7f')]!==_0x0a28('0x39')?operators[_0x5c8968[_0x0a28('0x75')]](_0x5c8968[_0x0a28('0x76')],_0x28b530['substatus']):![];case _0x0a28('0x80'):if(_0x28b530['channel']===_0x360262){return _0x5c8968[_0x0a28('0x76')]==='created'&&_0x5c8968[_0x0a28('0x75')]==='equals'?!![]:![];}break;}return![];};};module['exports']=Trigger;