2370a324c6a5d3e19d07d98481778aca8238f128
[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 _0xfb8d=['data1','popup','html','render','template\x20not\x20found','buildUri','isNil','data4','location','uriLocation','windowWidth','data5','data6','winApplication','data2','winArguments','data3','format','trigger:%s:%s','action','user:%s','name','trigger:%s','exec','integration','queue','urlforward','script','parse','query','replace','AllConditions','length','checkConditions','some','channel','field','account','chat','ChatWebsiteId','operator','value','AccountId','interaction','message','event','agent','membername','lastevent','routeId','exports','url','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','redis','defaults','socket.io-emitter','winapp','triggers','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:agentnosuchnumber','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','custom:dialconnect','syncAgentDial','custom:dialend','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:rejectmessage','emit','info','stringify','clone','checkTriggers','prototype','hasOwnProperty','status','checkTrigger','merge','variables','Actions','interface','toLowerCase','contactmanager','motionbar','browser'];(function(_0x4cf8ba,_0x53e39c){var _0x11216a=function(_0x585927){while(--_0x585927){_0x4cf8ba['push'](_0x4cf8ba['shift']());}};_0x11216a(++_0x53e39c);}(_0xfb8d,0x195));var _0xdfb8=function(_0x46ad7e,_0x101c11){_0x46ad7e=_0x46ad7e-0x0;var _0x39bffa=_0xfb8d[_0x46ad7e];return _0x39bffa;};'use strict';var util=require('util');var _=require('lodash');var url=require(_0xdfb8('0x0'));var Mustache=require('mustache');var Redis=require(_0xdfb8('0x1'));var urlforward=require(_0xdfb8('0x2'));var integration=require(_0xdfb8('0x3'));var cmContact=require(_0xdfb8('0x4'));var script=require(_0xdfb8('0x5'));var config=require(_0xdfb8('0x6'));var logger=require(_0xdfb8('0x7'))(_0xdfb8('0x8'));var ami=require('../ami');config[_0xdfb8('0x9')]=_[_0xdfb8('0xa')](config[_0xdfb8('0x9')],{'host':'localhost','port':0x18eb});var io=require(_0xdfb8('0xb'))(new Redis(config[_0xdfb8('0x9')]));var operators={'equals':function(_0x501ad0,_0x36a131){return _0x501ad0==_0x36a131;},'not_equals':function(_0x4a68ea,_0x22aa58){return _0x4a68ea!=_0x22aa58;}};var barAndWebActions=['popup',_0xdfb8('0x0'),_0xdfb8('0xc')];function Trigger(_0x47b4e2){this[_0xdfb8('0xd')]=_0x47b4e2[_0xdfb8('0xd')];this['agents']=_0x47b4e2[_0xdfb8('0xe')];this[_0xdfb8('0xf')]=_0x47b4e2[_0xdfb8('0xf')];this[_0xdfb8('0x10')]=_0x47b4e2[_0xdfb8('0x10')];this[_0xdfb8('0x11')]=_0x47b4e2[_0xdfb8('0x11')];this[_0xdfb8('0x12')]=_0x47b4e2[_0xdfb8('0x12')];this[_0xdfb8('0x13')]=_0x47b4e2[_0xdfb8('0x13')];this[_0xdfb8('0x14')]=_0x47b4e2[_0xdfb8('0x14')];this[_0xdfb8('0x15')]=_0x47b4e2[_0xdfb8('0x15')];this[_0xdfb8('0x16')]=_0x47b4e2['zohoAccounts'];this[_0xdfb8('0x17')]=_0x47b4e2[_0xdfb8('0x17')];this[_0xdfb8('0x18')]=_0x47b4e2[_0xdfb8('0x18')];this[_0xdfb8('0x19')]=_0x47b4e2[_0xdfb8('0x19')];this[_0xdfb8('0x1a')]=_0x47b4e2[_0xdfb8('0x1a')];this['freshsalesAccounts']=_0x47b4e2[_0xdfb8('0x1b')];this[_0xdfb8('0x1c')]={'zendesk':this[_0xdfb8('0x12')],'salesforce':this[_0xdfb8('0x14')],'freshdesk':this[_0xdfb8('0x13')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this[_0xdfb8('0x16')],'desk':this[_0xdfb8('0x17')],'vtiger':this[_0xdfb8('0x18')],'dynamics365':this[_0xdfb8('0x1a')],'freshsales':this[_0xdfb8('0x1b')],'servicenow':this[_0xdfb8('0x19')]};ami['on'](_0xdfb8('0x1d'),this[_0xdfb8('0x1e')][_0xdfb8('0x1f')](this));ami['on'](_0xdfb8('0x20'),this[_0xdfb8('0x1e')][_0xdfb8('0x1f')](this));ami['on'](_0xdfb8('0x21'),this[_0xdfb8('0x1e')][_0xdfb8('0x1f')](this));ami['on'](_0xdfb8('0x22'),this[_0xdfb8('0x1e')]['bind'](this));ami['on'](_0xdfb8('0x23'),this[_0xdfb8('0x1e')]['bind'](this));ami['on']('custom:agentnoanswer',this[_0xdfb8('0x1e')][_0xdfb8('0x1f')](this));ami['on'](_0xdfb8('0x24'),this['syncCustomEvent'][_0xdfb8('0x1f')](this));ami['on'](_0xdfb8('0x25'),this[_0xdfb8('0x1e')][_0xdfb8('0x1f')](this));ami['on'](_0xdfb8('0x26'),this[_0xdfb8('0x1e')][_0xdfb8('0x1f')](this));ami['on'](_0xdfb8('0x27'),this[_0xdfb8('0x1e')][_0xdfb8('0x1f')](this));ami['on'](_0xdfb8('0x28'),this[_0xdfb8('0x1e')]['bind'](this));ami['on'](_0xdfb8('0x29'),this[_0xdfb8('0x1e')]['bind'](this));ami['on'](_0xdfb8('0x2a'),this['syncAgentDial'][_0xdfb8('0x1f')](this));ami['on'](_0xdfb8('0x2b'),this[_0xdfb8('0x2c')][_0xdfb8('0x1f')](this));ami['on'](_0xdfb8('0x2d'),this[_0xdfb8('0x2c')][_0xdfb8('0x1f')](this));ami['on']('custom:newinteraction',this[_0xdfb8('0x1e')][_0xdfb8('0x1f')](this));ami['on'](_0xdfb8('0x2e'),this[_0xdfb8('0x1e')][_0xdfb8('0x1f')](this));ami['on'](_0xdfb8('0x2f'),this['syncCustomEvent'][_0xdfb8('0x1f')](this));ami['on'](_0xdfb8('0x30'),this['syncCustomEvent'][_0xdfb8('0x1f')](this));ami['on']('custom:acceptmessage',this[_0xdfb8('0x1e')][_0xdfb8('0x1f')](this));ami['on'](_0xdfb8('0x31'),this[_0xdfb8('0x1e')][_0xdfb8('0x1f')](this));}Trigger['prototype'][_0xdfb8('0x32')]=function(_0x1373f2,_0x5b8214,_0x1e09cd){logger[_0xdfb8('0x33')](_0x1373f2,_0x5b8214,JSON[_0xdfb8('0x34')](_0x1e09cd));io['to'](_0x1373f2)[_0xdfb8('0x32')](_0x5b8214,_0x1e09cd);};Trigger['prototype'][_0xdfb8('0x1e')]=function(_0x28ff11){var _0x42774b=_[_0xdfb8('0x35')](_0x28ff11);this[_0xdfb8('0x36')](_0x42774b);};Trigger['prototype']['syncAgentDial']=function(_0x314952){if(this[_0xdfb8('0xe')][_0x314952['interface']]){this[_0xdfb8('0x1e')](_0x314952);}};Trigger[_0xdfb8('0x37')][_0xdfb8('0x36')]=function(_0x47ba29){var _0x8343e9;for(var _0x52c0d6 in this[_0xdfb8('0xd')]){if(this[_0xdfb8('0xd')][_0xdfb8('0x38')](_0x52c0d6)){if(this[_0xdfb8('0xd')][_0x52c0d6][_0xdfb8('0x39')]){_0x8343e9=this[_0xdfb8('0x3a')](this[_0xdfb8('0xd')][_0x52c0d6],_0x47ba29);if(_0x8343e9){_[_0xdfb8('0x3b')](_0x47ba29,_0x47ba29[_0xdfb8('0x3c')]);for(var _0x27adc5=0x0,_0x49535f,_0x115cf2,_0x25f53e;_0x27adc5<this[_0xdfb8('0xd')][_0x52c0d6][_0xdfb8('0x3d')]['length'];_0x27adc5+=0x1){_0x49535f=this[_0xdfb8('0xd')][_0x52c0d6][_0xdfb8('0x3d')][_0x27adc5];if(this[_0xdfb8('0xe')][_0x47ba29[_0xdfb8('0x3e')]]){switch(_0x49535f['action'][_0xdfb8('0x3f')]()){case _0xdfb8('0x40'):break;case _0xdfb8('0x41'):case _0xdfb8('0x42'):var _0x56f27d={};switch(barAndWebActions[_0x49535f[_0xdfb8('0x43')]]){case _0xdfb8('0x44'):_0x56f27d['TemplateId']=_0x49535f['data2'];_0x56f27d[_0xdfb8('0x45')]=this[_0xdfb8('0x10')][_0x49535f['data2']]?Mustache[_0xdfb8('0x46')](this[_0xdfb8('0x10')][_0x49535f['data2']][_0xdfb8('0x45')],_0x47ba29):_0xdfb8('0x47');break;case _0xdfb8('0x0'):_0x56f27d['uri']=this[_0xdfb8('0x48')](_0x49535f['data2'],_0x47ba29,_['isNil'](_0x49535f['data3'])?!![]:parseInt(_0x49535f['data3'],0xa));if(_[_0xdfb8('0x49')](_0x49535f[_0xdfb8('0x4a')])){_0x56f27d[_0xdfb8('0x4b')]='0';}else{_0x56f27d[_0xdfb8('0x4c')]=_0x49535f[_0xdfb8('0x4a')];_0x56f27d[_0xdfb8('0x4d')]=_['isNil'](_0x49535f[_0xdfb8('0x4e')])?'800':_0x49535f[_0xdfb8('0x4e')];_0x56f27d['windowHeight']=_['isNil'](_0x49535f[_0xdfb8('0x4f')])?'600':_0x49535f['data6'];}break;case _0xdfb8('0xc'):_0x56f27d[_0xdfb8('0x50')]=_0x49535f[_0xdfb8('0x51')]?Mustache[_0xdfb8('0x46')](_0x49535f[_0xdfb8('0x51')],_0x47ba29):'';_0x56f27d[_0xdfb8('0x52')]=_0x49535f[_0xdfb8('0x53')]?Mustache['render'](_0x49535f['data3'],_0x47ba29):'';break;}this['emit'](util[_0xdfb8('0x54')]('user:%s',this['agents'][_0x47ba29[_0xdfb8('0x3e')]]['name']),util[_0xdfb8('0x54')](_0xdfb8('0x55'),_0x49535f[_0xdfb8('0x56')]['toLowerCase'](),barAndWebActions[_0x49535f[_0xdfb8('0x43')]]),_[_0xdfb8('0x3b')](_0x56f27d,_0x47ba29));break;case'jscripty':this[_0xdfb8('0x32')](util['format'](_0xdfb8('0x57'),this[_0xdfb8('0xe')][_0x47ba29[_0xdfb8('0x3e')]][_0xdfb8('0x58')]),util[_0xdfb8('0x54')](_0xdfb8('0x59'),_0x49535f[_0xdfb8('0x56')][_0xdfb8('0x3f')]()),_[_0xdfb8('0x3b')]({'ProjectId':parseInt(_0x49535f['data1'],0xa)},_0x47ba29));break;default:this['emit'](util[_0xdfb8('0x54')](_0xdfb8('0x57'),this[_0xdfb8('0xe')][_0x47ba29['interface']][_0xdfb8('0x58')]),util['format'](_0xdfb8('0x59'),_0x49535f['action'][_0xdfb8('0x3f')]()),_[_0xdfb8('0x3b')]({},_0x49535f,_0x47ba29));}}switch(_0x49535f[_0xdfb8('0x56')]['toLowerCase']()){case'contactmanager':cmContact[_0xdfb8('0x5a')](this[_0xdfb8('0xe')][_0x47ba29[_0xdfb8('0x3e')]],this['triggers'][_0x52c0d6],_0x49535f,_0x47ba29);break;case _0xdfb8('0x5b'):integration[_0xdfb8('0x5a')](_0x49535f,_0x47ba29,this[_0xdfb8('0x1c')],this[_0xdfb8('0xe')][_0x47ba29[_0xdfb8('0x3e')]],this['voiceQueues'][_0x47ba29[_0xdfb8('0x5c')]],this['voiceExtensions'][_0x47ba29['routeId']]);break;case _0xdfb8('0x5d'):urlforward[_0xdfb8('0x5a')](_0x49535f,_0x47ba29);break;case _0xdfb8('0x5e'):script[_0xdfb8('0x5a')](_0x49535f,_0x47ba29);break;}}}}}}};Trigger['prototype'][_0xdfb8('0x48')]=function(_0x4de0f9,_0xfaed06,_0x46c3bd){var _0x43cb6e=url[_0xdfb8('0x5f')](Mustache[_0xdfb8('0x46')](_0x4de0f9,_0xfaed06),!![]);if(_0x46c3bd){_[_0xdfb8('0x3b')](_0x43cb6e[_0xdfb8('0x60')],_0xfaed06);}delete _0x43cb6e['search'];var _0x3d9463=url[_0xdfb8('0x54')](_0x43cb6e);_0x3d9463=_0x3d9463[_0xdfb8('0x61')](/\/\?/g,'?');return _0x3d9463;};Trigger['prototype'][_0xdfb8('0x3a')]=function(_0xc6bbe2,_0x403cd0){var _0xd71dcf=!![],_0x5bfbe8=!![];if(_0xc6bbe2[_0xdfb8('0x62')][_0xdfb8('0x63')]){_0xd71dcf=_['every'](_0xc6bbe2[_0xdfb8('0x62')],this[_0xdfb8('0x64')](_0x403cd0,_0xc6bbe2['channel']));}if(_0xc6bbe2['AnyConditions'][_0xdfb8('0x63')]){_0x5bfbe8=_[_0xdfb8('0x65')](_0xc6bbe2['AnyConditions'],this[_0xdfb8('0x64')](_0x403cd0,_0xc6bbe2[_0xdfb8('0x66')]));}return _0xd71dcf&&_0x5bfbe8;};Trigger[_0xdfb8('0x37')][_0xdfb8('0x64')]=function(_0x13a5d7,_0x2dbf70){return function(_0x30dd7c){switch(_0x30dd7c[_0xdfb8('0x67')]){case _0xdfb8('0x68'):if(_0x13a5d7[_0xdfb8('0x66')]===_0x2dbf70){if(_0x2dbf70===_0xdfb8('0x69')){return _0x13a5d7[_0xdfb8('0x6a')]?operators[_0x30dd7c[_0xdfb8('0x6b')]](Number(_0x30dd7c[_0xdfb8('0x6c')]),_0x13a5d7[_0xdfb8('0x6a')]):![];}else{return _0x13a5d7[_['upperFirst'](_0x2dbf70)+_0xdfb8('0x6d')]?operators[_0x30dd7c[_0xdfb8('0x6b')]](Number(_0x30dd7c[_0xdfb8('0x6c')]),_0x13a5d7[_['upperFirst'](_0x2dbf70)+'AccountId']):![];}}break;case _0xdfb8('0x6e'):case _0xdfb8('0x6f'):if(_0x13a5d7[_0xdfb8('0x66')]===_0x2dbf70){return _0x13a5d7[_0xdfb8('0x70')]?operators[_0x30dd7c['operator']](_0x30dd7c[_0xdfb8('0x6c')],_0x13a5d7[_0xdfb8('0x70')]):![];}break;case'queue':return _0x13a5d7['queue']?operators[_0x30dd7c[_0xdfb8('0x6b')]](_0x30dd7c[_0xdfb8('0x6c')],_0x13a5d7[_0xdfb8('0x5c')]):![];case _0xdfb8('0x71'):return _0x13a5d7[_0xdfb8('0x72')]?operators[_0x30dd7c['operator']](_0x30dd7c[_0xdfb8('0x6c')],_0x13a5d7['membername']):![];case'lastevent':return _0x13a5d7[_0xdfb8('0x73')]?operators[_0x30dd7c['operator']](_0x30dd7c[_0xdfb8('0x6c')],_0x13a5d7[_0xdfb8('0x73')]):![];case'routeId':return _0x13a5d7[_0xdfb8('0x74')]?operators[_0x30dd7c[_0xdfb8('0x6b')]](_0x30dd7c[_0xdfb8('0x6c')],_0x13a5d7[_0xdfb8('0x74')]):![];}return![];};};module[_0xdfb8('0x75')]=Trigger;