46ba77f471bba34b57761353fe27a202c366748b
[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 _0xab9f=['motionbar','browser','data1','TemplateId','data2','html','render','template\x20not\x20found','uri','isNil','data3','data4','location','uriLocation','windowWidth','data5','800','windowHeight','600','data6','format','user:%s','name','trigger:%s:%s','merge','jscripty','trigger:%s','integration','exec','queue','routeId','script','buildUri','parse','replace','channel','every','checkConditions','AnyConditions','some','field','account','chat','ChatWebsiteId','operator','value','AccountId','upperFirst','event','membername','lastevent','mailSubstatus','substatus','undefined','offlineMessage','created','equals','exports','util','url','mustache','ioredis','./integration','./cmContact','../../../config/environment','trigger','redis','defaults','localhost','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','vtigerAccounts','custom:agentcalled','syncCustomEvent','custom:agentconnect','bind','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','emit','info','stringify','clone','motionChannel','voice','checkTriggers','prototype','interface','hasOwnProperty','status','checkTrigger','variables','Actions','length','action','toLowerCase'];(function(_0xdca687,_0x4bca5f){var _0x29c676=function(_0x2dd42d){while(--_0x2dd42d){_0xdca687['push'](_0xdca687['shift']());}};_0x29c676(++_0x4bca5f);}(_0xab9f,0x1bd));var _0xfab9=function(_0x53208e,_0x4a1eb8){_0x53208e=_0x53208e-0x0;var _0xa97d9b=_0xab9f[_0x53208e];return _0xa97d9b;};'use strict';var util=require(_0xfab9('0x0'));var _=require('lodash');var url=require(_0xfab9('0x1'));var Mustache=require(_0xfab9('0x2'));var Redis=require(_0xfab9('0x3'));var urlforward=require('./urlforward');var integration=require(_0xfab9('0x4'));var cmContact=require(_0xfab9('0x5'));var script=require('./script');var config=require(_0xfab9('0x6'));var logger=require('../../../config/logger')(_0xfab9('0x7'));var ami=require('../ami');config[_0xfab9('0x8')]=_[_0xfab9('0x9')](config[_0xfab9('0x8')],{'host':_0xfab9('0xa'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xfab9('0x8')]));var operators={'equals':function(_0x35e7cb,_0x480a9d){return _0x35e7cb==_0x480a9d;},'not_equals':function(_0x5cbcb5,_0x3bed7b){return _0x5cbcb5!=_0x3bed7b;}};var barAndWebActions=[_0xfab9('0xb'),_0xfab9('0x1'),_0xfab9('0xc')];function Trigger(_0x4d5dd1){this['triggers']=_0x4d5dd1[_0xfab9('0xd')];this[_0xfab9('0xe')]=_0x4d5dd1[_0xfab9('0xe')];this[_0xfab9('0xf')]=_0x4d5dd1[_0xfab9('0xf')];this[_0xfab9('0x10')]=_0x4d5dd1[_0xfab9('0x10')];this[_0xfab9('0x11')]=_0x4d5dd1[_0xfab9('0x11')];this[_0xfab9('0x12')]=_0x4d5dd1['zendeskAccounts'];this[_0xfab9('0x13')]=_0x4d5dd1[_0xfab9('0x13')];this[_0xfab9('0x14')]=_0x4d5dd1[_0xfab9('0x14')];this[_0xfab9('0x15')]=_0x4d5dd1[_0xfab9('0x15')];this['zohoAccounts']=_0x4d5dd1[_0xfab9('0x16')];this[_0xfab9('0x17')]=_0x4d5dd1[_0xfab9('0x17')];this['vtigerAccounts']=_0x4d5dd1['vtigerAccounts'];this[_0xfab9('0x18')]=_0x4d5dd1['servicenowAccounts'];this[_0xfab9('0x19')]=_0x4d5dd1[_0xfab9('0x19')];this[_0xfab9('0x1a')]=_0x4d5dd1[_0xfab9('0x1a')];this[_0xfab9('0x1b')]={'zendesk':this['zendeskAccounts'],'salesforce':this[_0xfab9('0x14')],'freshdesk':this[_0xfab9('0x13')],'sugarcrm':this[_0xfab9('0x15')],'zoho':this[_0xfab9('0x16')],'desk':this[_0xfab9('0x17')],'vtiger':this[_0xfab9('0x1c')],'dynamics365':this[_0xfab9('0x19')],'freshsales':this[_0xfab9('0x1a')],'servicenow':this[_0xfab9('0x18')]};ami['on'](_0xfab9('0x1d'),this[_0xfab9('0x1e')]['bind'](this));ami['on'](_0xfab9('0x1f'),this[_0xfab9('0x1e')][_0xfab9('0x20')](this));ami['on'](_0xfab9('0x21'),this['syncCustomEvent'][_0xfab9('0x20')](this));ami['on'](_0xfab9('0x22'),this[_0xfab9('0x1e')][_0xfab9('0x20')](this));ami['on'](_0xfab9('0x23'),this[_0xfab9('0x1e')][_0xfab9('0x20')](this));ami['on'](_0xfab9('0x24'),this[_0xfab9('0x1e')][_0xfab9('0x20')](this));ami['on'](_0xfab9('0x25'),this[_0xfab9('0x1e')][_0xfab9('0x20')](this));ami['on'](_0xfab9('0x26'),this[_0xfab9('0x1e')][_0xfab9('0x20')](this));ami['on']('custom:agentreject',this[_0xfab9('0x1e')][_0xfab9('0x20')](this));ami['on'](_0xfab9('0x27'),this[_0xfab9('0x1e')]['bind'](this));ami['on'](_0xfab9('0x28'),this[_0xfab9('0x1e')][_0xfab9('0x20')](this));ami['on'](_0xfab9('0x29'),this[_0xfab9('0x1e')][_0xfab9('0x20')](this));ami['on'](_0xfab9('0x2a'),this[_0xfab9('0x2b')][_0xfab9('0x20')](this));ami['on'](_0xfab9('0x2c'),this[_0xfab9('0x2b')][_0xfab9('0x20')](this));ami['on'](_0xfab9('0x2d'),this[_0xfab9('0x2b')][_0xfab9('0x20')](this));ami['on'](_0xfab9('0x2e'),this[_0xfab9('0x1e')][_0xfab9('0x20')](this));ami['on'](_0xfab9('0x2f'),this[_0xfab9('0x1e')][_0xfab9('0x20')](this));ami['on'](_0xfab9('0x30'),this[_0xfab9('0x1e')]['bind'](this));ami['on'](_0xfab9('0x31'),this[_0xfab9('0x1e')][_0xfab9('0x20')](this));ami['on'](_0xfab9('0x32'),this[_0xfab9('0x1e')][_0xfab9('0x20')](this));ami['on'](_0xfab9('0x33'),this[_0xfab9('0x1e')][_0xfab9('0x20')](this));ami['on'](_0xfab9('0x34'),this[_0xfab9('0x1e')][_0xfab9('0x20')](this));ami['on'](_0xfab9('0x35'),this[_0xfab9('0x1e')][_0xfab9('0x20')](this));}Trigger['prototype'][_0xfab9('0x36')]=function(_0x5a7453,_0x4de7c9,_0x51af6c){logger[_0xfab9('0x37')](_0x5a7453,_0x4de7c9,JSON[_0xfab9('0x38')](_0x51af6c));io['to'](_0x5a7453)[_0xfab9('0x36')](_0x4de7c9,_0x51af6c);};Trigger['prototype']['syncCustomEvent']=function(_0x4778c2){var _0x339b6f=_[_0xfab9('0x39')](_0x4778c2);if(typeof _0x339b6f[_0xfab9('0x3a')]==='undefined'){_0x339b6f[_0xfab9('0x3a')]=_0xfab9('0x3b');}this[_0xfab9('0x3c')](_0x339b6f);};Trigger[_0xfab9('0x3d')]['syncAgentDial']=function(_0x37b11a){if(this[_0xfab9('0xe')][_0x37b11a[_0xfab9('0x3e')]]){this[_0xfab9('0x1e')](_0x37b11a);}};Trigger[_0xfab9('0x3d')][_0xfab9('0x3c')]=function(_0x3e0efa){var _0x319b37;for(var _0x13d488 in this[_0xfab9('0xd')]){if(this[_0xfab9('0xd')][_0xfab9('0x3f')](_0x13d488)){if(this[_0xfab9('0xd')][_0x13d488][_0xfab9('0x40')]){_0x319b37=this[_0xfab9('0x41')](this[_0xfab9('0xd')][_0x13d488],_0x3e0efa);if(_0x319b37){_['merge'](_0x3e0efa,_0x3e0efa[_0xfab9('0x42')]);for(var _0x4afa76=0x0,_0xc6391c,_0x51be6b,_0x2f142a;_0x4afa76<this[_0xfab9('0xd')][_0x13d488][_0xfab9('0x43')][_0xfab9('0x44')];_0x4afa76+=0x1){_0xc6391c=this[_0xfab9('0xd')][_0x13d488][_0xfab9('0x43')][_0x4afa76];if(this['agents'][_0x3e0efa[_0xfab9('0x3e')]]){switch(_0xc6391c[_0xfab9('0x45')][_0xfab9('0x46')]()){case'contactmanager':break;case _0xfab9('0x47'):case _0xfab9('0x48'):var _0xe160e2={};switch(barAndWebActions[_0xc6391c[_0xfab9('0x49')]]){case _0xfab9('0xb'):_0xe160e2[_0xfab9('0x4a')]=_0xc6391c[_0xfab9('0x4b')];_0xe160e2[_0xfab9('0x4c')]=this[_0xfab9('0x10')][_0xc6391c[_0xfab9('0x4b')]]?Mustache[_0xfab9('0x4d')](this[_0xfab9('0x10')][_0xc6391c[_0xfab9('0x4b')]][_0xfab9('0x4c')],_0x3e0efa):_0xfab9('0x4e');break;case _0xfab9('0x1'):_0xe160e2[_0xfab9('0x4f')]=this['buildUri'](_0xc6391c[_0xfab9('0x4b')],_0x3e0efa,_[_0xfab9('0x50')](_0xc6391c[_0xfab9('0x51')])?!![]:parseInt(_0xc6391c[_0xfab9('0x51')],0xa));if(_[_0xfab9('0x50')](_0xc6391c[_0xfab9('0x52')])){_0xe160e2[_0xfab9('0x53')]='0';}else{_0xe160e2[_0xfab9('0x54')]=_0xc6391c[_0xfab9('0x52')];_0xe160e2[_0xfab9('0x55')]=_[_0xfab9('0x50')](_0xc6391c[_0xfab9('0x56')])?_0xfab9('0x57'):_0xc6391c[_0xfab9('0x56')];_0xe160e2[_0xfab9('0x58')]=_['isNil'](_0xc6391c['data6'])?_0xfab9('0x59'):_0xc6391c[_0xfab9('0x5a')];}break;case _0xfab9('0xc'):_0xe160e2['winApplication']=_0xc6391c[_0xfab9('0x4b')]?Mustache[_0xfab9('0x4d')](_0xc6391c[_0xfab9('0x4b')],_0x3e0efa):'';_0xe160e2['winArguments']=_0xc6391c[_0xfab9('0x51')]?Mustache[_0xfab9('0x4d')](_0xc6391c['data3'],_0x3e0efa):'';break;}this[_0xfab9('0x36')](util[_0xfab9('0x5b')](_0xfab9('0x5c'),this['agents'][_0x3e0efa[_0xfab9('0x3e')]][_0xfab9('0x5d')]),util[_0xfab9('0x5b')](_0xfab9('0x5e'),_0xc6391c[_0xfab9('0x45')][_0xfab9('0x46')](),barAndWebActions[_0xc6391c['data1']]),_[_0xfab9('0x5f')](_0xe160e2,_0x3e0efa));break;case _0xfab9('0x60'):this['emit'](util['format'](_0xfab9('0x5c'),this[_0xfab9('0xe')][_0x3e0efa['interface']][_0xfab9('0x5d')]),util['format'](_0xfab9('0x61'),_0xc6391c[_0xfab9('0x45')][_0xfab9('0x46')]()),_[_0xfab9('0x5f')]({'ProjectId':parseInt(_0xc6391c[_0xfab9('0x49')],0xa)},_0x3e0efa));break;default:this[_0xfab9('0x36')](util[_0xfab9('0x5b')]('user:%s',this[_0xfab9('0xe')][_0x3e0efa[_0xfab9('0x3e')]]['name']),util[_0xfab9('0x5b')]('trigger:%s',_0xc6391c[_0xfab9('0x45')][_0xfab9('0x46')]()),_[_0xfab9('0x5f')]({},_0xc6391c,_0x3e0efa));}}switch(_0xc6391c[_0xfab9('0x45')][_0xfab9('0x46')]()){case'contactmanager':cmContact['exec'](this[_0xfab9('0xe')][_0x3e0efa[_0xfab9('0x3e')]],this[_0xfab9('0xd')][_0x13d488],_0xc6391c,_0x3e0efa);break;case _0xfab9('0x62'):integration[_0xfab9('0x63')](_0xc6391c,_0x3e0efa,this[_0xfab9('0x1b')],this[_0xfab9('0xe')][_0x3e0efa[_0xfab9('0x3e')]],this[_0xfab9('0xf')][_0x3e0efa[_0xfab9('0x64')]],this[_0xfab9('0x11')][_0x3e0efa[_0xfab9('0x65')]]);break;case'urlforward':urlforward[_0xfab9('0x63')](_0xc6391c,_0x3e0efa);break;case _0xfab9('0x66'):script[_0xfab9('0x63')](_0xc6391c,_0x3e0efa);break;}}}}}}};Trigger[_0xfab9('0x3d')][_0xfab9('0x67')]=function(_0x3e76e5,_0x263a05,_0x183880){var _0x2e70be=url[_0xfab9('0x68')](Mustache[_0xfab9('0x4d')](_0x3e76e5,_0x263a05),!![]);if(_0x183880){_[_0xfab9('0x5f')](_0x2e70be['query'],_0x263a05);}delete _0x2e70be['search'];var _0x51dfd6=url[_0xfab9('0x5b')](_0x2e70be);_0x51dfd6=_0x51dfd6[_0xfab9('0x69')](/\/\?/g,'?');return _0x51dfd6;};Trigger[_0xfab9('0x3d')][_0xfab9('0x41')]=function(_0x942a14,_0x6a1c2c){var _0x3a9219=!![];var _0x149d3b=!![];var _0x1176e1=![];if(_0x942a14[_0xfab9('0x6a')]===_0x6a1c2c[_0xfab9('0x3a')]){_0x1176e1=!![];}if(_0x942a14['AllConditions'][_0xfab9('0x44')]){_0x3a9219=_[_0xfab9('0x6b')](_0x942a14['AllConditions'],this[_0xfab9('0x6c')](_0x6a1c2c,_0x942a14[_0xfab9('0x6a')]));}if(_0x942a14[_0xfab9('0x6d')]['length']){_0x149d3b=_[_0xfab9('0x6e')](_0x942a14['AnyConditions'],this[_0xfab9('0x6c')](_0x6a1c2c,_0x942a14[_0xfab9('0x6a')]));}return _0x1176e1&&_0x3a9219&&_0x149d3b;};Trigger[_0xfab9('0x3d')][_0xfab9('0x6c')]=function(_0xf5077e,_0x541ca2){return function(_0x1eb8a8){switch(_0x1eb8a8[_0xfab9('0x6f')]){case _0xfab9('0x70'):if(_0xf5077e[_0xfab9('0x6a')]===_0x541ca2){if(_0x541ca2===_0xfab9('0x71')){return _0xf5077e[_0xfab9('0x72')]?operators[_0x1eb8a8[_0xfab9('0x73')]](Number(_0x1eb8a8[_0xfab9('0x74')]),_0xf5077e['ChatWebsiteId']):![];}else{return _0xf5077e[_['upperFirst'](_0x541ca2)+_0xfab9('0x75')]?operators[_0x1eb8a8[_0xfab9('0x73')]](Number(_0x1eb8a8[_0xfab9('0x74')]),_0xf5077e[_[_0xfab9('0x76')](_0x541ca2)+_0xfab9('0x75')]):![];}}break;case'interaction':case'message':if(_0xf5077e[_0xfab9('0x6a')]===_0x541ca2){return _0xf5077e['event']?operators[_0x1eb8a8['operator']](_0x1eb8a8[_0xfab9('0x74')],_0xf5077e[_0xfab9('0x77')]):![];}break;case _0xfab9('0x64'):return _0xf5077e[_0xfab9('0x64')]?operators[_0x1eb8a8[_0xfab9('0x73')]](_0x1eb8a8[_0xfab9('0x74')],_0xf5077e['queue']):![];case'agent':return _0xf5077e[_0xfab9('0x78')]?operators[_0x1eb8a8[_0xfab9('0x73')]](_0x1eb8a8['value'],_0xf5077e[_0xfab9('0x78')]):![];case _0xfab9('0x79'):return _0xf5077e[_0xfab9('0x79')]?operators[_0x1eb8a8[_0xfab9('0x73')]](_0x1eb8a8[_0xfab9('0x74')],_0xf5077e[_0xfab9('0x79')]):![];case _0xfab9('0x65'):return _0xf5077e['routeId']?operators[_0x1eb8a8[_0xfab9('0x73')]](_0x1eb8a8[_0xfab9('0x74')],_0xf5077e['routeId']):![];case _0xfab9('0x7a'):if(_0x1eb8a8[_0xfab9('0x74')]==='null')_0x1eb8a8['value']=null;return typeof _0xf5077e[_0xfab9('0x7b')]!==_0xfab9('0x7c')?operators[_0x1eb8a8[_0xfab9('0x73')]](_0x1eb8a8['value'],_0xf5077e[_0xfab9('0x7b')]):![];case _0xfab9('0x7d'):if(_0xf5077e[_0xfab9('0x6a')]===_0x541ca2){return _0x1eb8a8['value']===_0xfab9('0x7e')&&_0x1eb8a8[_0xfab9('0x73')]===_0xfab9('0x7f')?!![]:![];}break;}return![];};};module[_0xfab9('0x80')]=Trigger;