a7ebcab712b4d21259ef1ab6fe5261a48192fab2
[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 _0x9962=['browser','data1','data2','html','render','buildUri','data3','isNil','location','uriLocation','data4','windowWidth','data5','800','windowHeight','winApplication','winArguments','name','format','trigger:%s:%s','action','jscripty','user:%s','trigger:%s','integration','exec','queue','routeId','urlforward','script','parse','query','search','channel','AllConditions','length','every','checkConditions','AnyConditions','some','field','account','ChatWebsiteId','operator','value','upperFirst','AccountId','interaction','message','event','agent','membername','lastevent','null','substatus','equals','exports','util','url','mustache','ioredis','./integration','./script','../../../config/environment','trigger','../ami','defaults','redis','localhost','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','servicenowAccounts','freshsalesAccounts','vtigerAccounts','dynamics365Accounts','syncCustomEvent','bind','custom:agentconnect','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentreject','custom:amd','custom:timeout','custom:dialbegin','custom:dialconnect','syncAgentDial','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','info','stringify','emit','motionChannel','undefined','voice','debug','inspect','checkTriggers','prototype','interface','hasOwnProperty','status','checkTrigger','merge','variables','Actions','toLowerCase','contactmanager','motionbar'];(function(_0x23186d,_0x4c42b6){var _0x34935a=function(_0x19c3a6){while(--_0x19c3a6){_0x23186d['push'](_0x23186d['shift']());}};_0x34935a(++_0x4c42b6);}(_0x9962,0xb8));var _0x2996=function(_0x2b3c01,_0x1394ca){_0x2b3c01=_0x2b3c01-0x0;var _0x3fb586=_0x9962[_0x2b3c01];return _0x3fb586;};'use strict';var util=require(_0x2996('0x0'));var _=require('lodash');var url=require(_0x2996('0x1'));var Mustache=require(_0x2996('0x2'));var Redis=require(_0x2996('0x3'));var urlforward=require('./urlforward');var integration=require(_0x2996('0x4'));var cmContact=require('./cmContact');var script=require(_0x2996('0x5'));var config=require(_0x2996('0x6'));var logger=require('../../../config/logger')(_0x2996('0x7'));var ami=require(_0x2996('0x8'));config['redis']=_[_0x2996('0x9')](config[_0x2996('0xa')],{'host':_0x2996('0xb'),'port':0x18eb});var io=require(_0x2996('0xc'))(new Redis(config[_0x2996('0xa')]));var operators={'equals':function(_0x58a04e,_0x13b5a6){return _0x58a04e==_0x13b5a6;},'not_equals':function(_0x5a24dd,_0x37c442){return _0x5a24dd!=_0x37c442;}};var barAndWebActions=[_0x2996('0xd'),_0x2996('0x1'),_0x2996('0xe')];function Trigger(_0x4f3716){this[_0x2996('0xf')]=_0x4f3716[_0x2996('0xf')];this[_0x2996('0x10')]=_0x4f3716[_0x2996('0x10')];this['voiceQueues']=_0x4f3716[_0x2996('0x11')];this[_0x2996('0x12')]=_0x4f3716[_0x2996('0x12')];this[_0x2996('0x13')]=_0x4f3716['voiceExtensions'];this[_0x2996('0x14')]=_0x4f3716['zendeskAccounts'];this[_0x2996('0x15')]=_0x4f3716[_0x2996('0x15')];this['salesforceAccounts']=_0x4f3716[_0x2996('0x16')];this[_0x2996('0x17')]=_0x4f3716[_0x2996('0x17')];this[_0x2996('0x18')]=_0x4f3716[_0x2996('0x18')];this[_0x2996('0x19')]=_0x4f3716[_0x2996('0x19')];this['vtigerAccounts']=_0x4f3716['vtigerAccounts'];this[_0x2996('0x1a')]=_0x4f3716[_0x2996('0x1a')];this['dynamics365Accounts']=_0x4f3716['dynamics365Accounts'];this[_0x2996('0x1b')]=_0x4f3716[_0x2996('0x1b')];this['accounts']={'zendesk':this[_0x2996('0x14')],'salesforce':this[_0x2996('0x16')],'freshdesk':this[_0x2996('0x15')],'sugarcrm':this[_0x2996('0x17')],'zoho':this[_0x2996('0x18')],'desk':this[_0x2996('0x19')],'vtiger':this[_0x2996('0x1c')],'dynamics365':this[_0x2996('0x1d')],'freshsales':this[_0x2996('0x1b')],'servicenow':this[_0x2996('0x1a')]};ami['on']('custom:agentcalled',this[_0x2996('0x1e')][_0x2996('0x1f')](this));ami['on'](_0x2996('0x20'),this[_0x2996('0x1e')][_0x2996('0x1f')](this));ami['on']('custom:agentringnoanswer',this[_0x2996('0x1e')][_0x2996('0x1f')](this));ami['on'](_0x2996('0x21'),this['syncCustomEvent'][_0x2996('0x1f')](this));ami['on'](_0x2996('0x22'),this[_0x2996('0x1e')]['bind'](this));ami['on'](_0x2996('0x23'),this[_0x2996('0x1e')][_0x2996('0x1f')](this));ami['on']('custom:agentbusy',this[_0x2996('0x1e')][_0x2996('0x1f')](this));ami['on']('custom:agentcongestion',this[_0x2996('0x1e')][_0x2996('0x1f')](this));ami['on'](_0x2996('0x24'),this[_0x2996('0x1e')]['bind'](this));ami['on'](_0x2996('0x25'),this[_0x2996('0x1e')]['bind'](this));ami['on']('custom:queuecallerabandon',this[_0x2996('0x1e')]['bind'](this));ami['on'](_0x2996('0x26'),this[_0x2996('0x1e')][_0x2996('0x1f')](this));ami['on'](_0x2996('0x27'),this['syncAgentDial']['bind'](this));ami['on'](_0x2996('0x28'),this[_0x2996('0x29')][_0x2996('0x1f')](this));ami['on'](_0x2996('0x2a'),this[_0x2996('0x29')][_0x2996('0x1f')](this));ami['on'](_0x2996('0x2b'),this[_0x2996('0x1e')]['bind'](this));ami['on'](_0x2996('0x2c'),this[_0x2996('0x1e')]['bind'](this));ami['on'](_0x2996('0x2d'),this['syncCustomEvent'][_0x2996('0x1f')](this));ami['on'](_0x2996('0x2e'),this[_0x2996('0x1e')]['bind'](this));ami['on']('custom:outgoingmessage',this[_0x2996('0x1e')]['bind'](this));ami['on'](_0x2996('0x2f'),this[_0x2996('0x1e')]['bind'](this));ami['on'](_0x2996('0x30'),this[_0x2996('0x1e')][_0x2996('0x1f')](this));ami['on'](_0x2996('0x31'),this[_0x2996('0x1e')][_0x2996('0x1f')](this));}Trigger['prototype']['emit']=function(_0x3adcac,_0x289e98,_0x2b1c3b){logger[_0x2996('0x32')](_0x3adcac,_0x289e98,JSON[_0x2996('0x33')](_0x2b1c3b));io['to'](_0x3adcac)[_0x2996('0x34')](_0x289e98,_0x2b1c3b);};Trigger['prototype'][_0x2996('0x1e')]=function(_0x1359c2){var _0x589308=_['clone'](_0x1359c2);if(typeof _0x589308[_0x2996('0x35')]===_0x2996('0x36')){_0x589308['motionChannel']=_0x2996('0x37');}logger[_0x2996('0x38')](_0x2996('0x1e'),util[_0x2996('0x39')](_0x589308,{'showHidden':!![],'depth':null}));this[_0x2996('0x3a')](_0x589308);};Trigger[_0x2996('0x3b')][_0x2996('0x29')]=function(_0x2a1e11){if(this['agents'][_0x2a1e11[_0x2996('0x3c')]]){this[_0x2996('0x1e')](_0x2a1e11);}};Trigger[_0x2996('0x3b')]['checkTriggers']=function(_0x43a8fb){var _0x4d825e;for(var _0x202e11 in this[_0x2996('0xf')]){if(this[_0x2996('0xf')][_0x2996('0x3d')](_0x202e11)){if(this[_0x2996('0xf')][_0x202e11][_0x2996('0x3e')]){_0x4d825e=this[_0x2996('0x3f')](this[_0x2996('0xf')][_0x202e11],_0x43a8fb);if(_0x4d825e){_[_0x2996('0x40')](_0x43a8fb,_0x43a8fb[_0x2996('0x41')]);for(var _0x521952=0x0,_0xb8b732,_0x329c71,_0x462cb4;_0x521952<this['triggers'][_0x202e11][_0x2996('0x42')]['length'];_0x521952+=0x1){_0xb8b732=this['triggers'][_0x202e11][_0x2996('0x42')][_0x521952];if(this[_0x2996('0x10')][_0x43a8fb[_0x2996('0x3c')]]){switch(_0xb8b732['action'][_0x2996('0x43')]()){case _0x2996('0x44'):break;case _0x2996('0x45'):case _0x2996('0x46'):var _0x35459f={};switch(barAndWebActions[_0xb8b732[_0x2996('0x47')]]){case'popup':_0x35459f['TemplateId']=_0xb8b732[_0x2996('0x48')];_0x35459f[_0x2996('0x49')]=this[_0x2996('0x12')][_0xb8b732[_0x2996('0x48')]]?Mustache[_0x2996('0x4a')](this[_0x2996('0x12')][_0xb8b732[_0x2996('0x48')]][_0x2996('0x49')],_0x43a8fb):'template\x20not\x20found';break;case'url':_0x35459f['uri']=this[_0x2996('0x4b')](_0xb8b732[_0x2996('0x48')],_0x43a8fb,_['isNil'](_0xb8b732[_0x2996('0x4c')])?!![]:parseInt(_0xb8b732[_0x2996('0x4c')],0xa));if(_[_0x2996('0x4d')](_0xb8b732['data4'])){_0x35459f[_0x2996('0x4e')]='0';}else{_0x35459f[_0x2996('0x4f')]=_0xb8b732[_0x2996('0x50')];_0x35459f[_0x2996('0x51')]=_[_0x2996('0x4d')](_0xb8b732[_0x2996('0x52')])?_0x2996('0x53'):_0xb8b732[_0x2996('0x52')];_0x35459f[_0x2996('0x54')]=_[_0x2996('0x4d')](_0xb8b732['data6'])?'600':_0xb8b732['data6'];}break;case _0x2996('0xe'):_0x35459f[_0x2996('0x55')]=_0xb8b732[_0x2996('0x48')]?Mustache[_0x2996('0x4a')](_0xb8b732[_0x2996('0x48')],_0x43a8fb):'';_0x35459f[_0x2996('0x56')]=_0xb8b732[_0x2996('0x4c')]?Mustache[_0x2996('0x4a')](_0xb8b732[_0x2996('0x4c')],_0x43a8fb):'';break;}this[_0x2996('0x34')](util['format']('user:%s',this[_0x2996('0x10')][_0x43a8fb[_0x2996('0x3c')]][_0x2996('0x57')]),util[_0x2996('0x58')](_0x2996('0x59'),_0xb8b732[_0x2996('0x5a')][_0x2996('0x43')](),barAndWebActions[_0xb8b732['data1']]),_[_0x2996('0x40')](_0x35459f,_0x43a8fb));break;case _0x2996('0x5b'):this[_0x2996('0x34')](util[_0x2996('0x58')](_0x2996('0x5c'),this[_0x2996('0x10')][_0x43a8fb['interface']][_0x2996('0x57')]),util[_0x2996('0x58')](_0x2996('0x5d'),_0xb8b732[_0x2996('0x5a')]['toLowerCase']()),_['merge']({'ProjectId':parseInt(_0xb8b732[_0x2996('0x47')],0xa)},_0x43a8fb));break;default:this[_0x2996('0x34')](util[_0x2996('0x58')](_0x2996('0x5c'),this['agents'][_0x43a8fb['interface']]['name']),util[_0x2996('0x58')](_0x2996('0x5d'),_0xb8b732[_0x2996('0x5a')]['toLowerCase']()),_[_0x2996('0x40')]({},_0xb8b732,_0x43a8fb));}}switch(_0xb8b732[_0x2996('0x5a')][_0x2996('0x43')]()){case _0x2996('0x44'):cmContact['exec'](this[_0x2996('0x10')][_0x43a8fb[_0x2996('0x3c')]],this[_0x2996('0xf')][_0x202e11],_0xb8b732,_0x43a8fb);break;case _0x2996('0x5e'):integration[_0x2996('0x5f')](_0xb8b732,_0x43a8fb,this['accounts'],this[_0x2996('0x10')][_0x43a8fb[_0x2996('0x3c')]],this[_0x2996('0x11')][_0x43a8fb[_0x2996('0x60')]],this[_0x2996('0x13')][_0x43a8fb[_0x2996('0x61')]]);break;case _0x2996('0x62'):urlforward[_0x2996('0x5f')](_0xb8b732,_0x43a8fb);break;case _0x2996('0x63'):script[_0x2996('0x5f')](_0xb8b732,_0x43a8fb);break;}}}}}}};Trigger['prototype'][_0x2996('0x4b')]=function(_0x3c76aa,_0x48a69a,_0x3764d1){var _0x63424f=url[_0x2996('0x64')](Mustache['render'](_0x3c76aa,_0x48a69a),!![]);if(_0x3764d1){_['merge'](_0x63424f[_0x2996('0x65')],_0x48a69a);}delete _0x63424f[_0x2996('0x66')];var _0x3a4845=url[_0x2996('0x58')](_0x63424f);_0x3a4845=_0x3a4845['replace'](/\/\?/g,'?');return _0x3a4845;};Trigger[_0x2996('0x3b')][_0x2996('0x3f')]=function(_0x25dd0c,_0x3bdcf6){var _0x2a9f6b=!![];var _0x4bc00a=!![];var _0x314f49=![];if(_0x25dd0c[_0x2996('0x67')]===_0x3bdcf6[_0x2996('0x35')]){_0x314f49=!![];}if(_0x25dd0c[_0x2996('0x68')][_0x2996('0x69')]){_0x2a9f6b=_[_0x2996('0x6a')](_0x25dd0c[_0x2996('0x68')],this[_0x2996('0x6b')](_0x3bdcf6,_0x25dd0c['channel']));}if(_0x25dd0c[_0x2996('0x6c')][_0x2996('0x69')]){_0x4bc00a=_[_0x2996('0x6d')](_0x25dd0c['AnyConditions'],this[_0x2996('0x6b')](_0x3bdcf6,_0x25dd0c['channel']));}var _0x1bc4fe=_0x314f49&&_0x2a9f6b&&_0x4bc00a;logger[_0x2996('0x38')]('checkTrigger:\x20trigger',util[_0x2996('0x39')](_0x25dd0c,{'showHidden':!![],'depth':null}),'evt',util[_0x2996('0x39')](_0x3bdcf6,{'showHidden':!![],'depth':null}),_0x314f49,_0x2a9f6b,_0x4bc00a);return _0x1bc4fe;};Trigger['prototype'][_0x2996('0x6b')]=function(_0x2bd7a2,_0x2a1a89){return function(_0x2c8063){switch(_0x2c8063[_0x2996('0x6e')]){case _0x2996('0x6f'):if(_0x2bd7a2[_0x2996('0x67')]===_0x2a1a89){if(_0x2a1a89==='chat'){return _0x2bd7a2[_0x2996('0x70')]?operators[_0x2c8063[_0x2996('0x71')]](Number(_0x2c8063[_0x2996('0x72')]),_0x2bd7a2[_0x2996('0x70')]):![];}else{return _0x2bd7a2[_[_0x2996('0x73')](_0x2a1a89)+'AccountId']?operators[_0x2c8063[_0x2996('0x71')]](Number(_0x2c8063[_0x2996('0x72')]),_0x2bd7a2[_[_0x2996('0x73')](_0x2a1a89)+_0x2996('0x74')]):![];}}break;case _0x2996('0x75'):case _0x2996('0x76'):if(_0x2bd7a2[_0x2996('0x67')]===_0x2a1a89){return _0x2bd7a2['event']?operators[_0x2c8063[_0x2996('0x71')]](_0x2c8063[_0x2996('0x72')],_0x2bd7a2[_0x2996('0x77')]):![];}break;case _0x2996('0x60'):return _0x2bd7a2['queue']?operators[_0x2c8063[_0x2996('0x71')]](_0x2c8063[_0x2996('0x72')],_0x2bd7a2['queue']):![];case _0x2996('0x78'):return _0x2bd7a2[_0x2996('0x79')]?operators[_0x2c8063[_0x2996('0x71')]](_0x2c8063[_0x2996('0x72')],_0x2bd7a2[_0x2996('0x79')]):![];case _0x2996('0x7a'):return _0x2bd7a2[_0x2996('0x7a')]?operators[_0x2c8063['operator']](_0x2c8063['value'],_0x2bd7a2[_0x2996('0x7a')]):![];case _0x2996('0x61'):return _0x2bd7a2[_0x2996('0x61')]?operators[_0x2c8063['operator']](_0x2c8063[_0x2996('0x72')],_0x2bd7a2[_0x2996('0x61')]):![];case'mailSubstatus':if(_0x2c8063['value']===_0x2996('0x7b'))_0x2c8063[_0x2996('0x72')]=null;return typeof _0x2bd7a2[_0x2996('0x7c')]!==_0x2996('0x36')?operators[_0x2c8063[_0x2996('0x71')]](_0x2c8063[_0x2996('0x72')],_0x2bd7a2[_0x2996('0x7c')]):![];case'offlineMessage':if(_0x2bd7a2[_0x2996('0x67')]===_0x2a1a89){return _0x2c8063[_0x2996('0x72')]==='created'&&_0x2c8063['operator']===_0x2996('0x7d')?!![]:![];}break;}return![];};};module[_0x2996('0x7e')]=Trigger;