d1a72fe1ac2726c5efff7c730dead79d5aca7962
[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 _0xf96b=['600','winApplication','winArguments','format','name','trigger:%s:%s','jscripty','user:%s','action','trigger:%s','exec','integration','queue','urlforward','script','query','search','replace','AllConditions','every','checkConditions','channel','some','account','ChatWebsiteId','operator','value','upperFirst','AccountId','interaction','message','membername','lastevent','routeId','exports','util','lodash','url','mustache','ioredis','./urlforward','./integration','./cmContact','./script','../rpc/cmContact','../../../config/environment','../../../config/logger','trigger','redis','defaults','localhost','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','custom:agentconnect','bind','custom:agentringnoanswer','custom:agentcomplete','custom:timeout','custom:dialconnect','syncAgentDial','custom:newinteraction','custom:incomingmessage','custom:outgoingmessage','custom:rejectmessage','prototype','info','stringify','emit','clone','interface','checkTriggers','hasOwnProperty','status','checkTrigger','merge','variables','Actions','length','toLowerCase','contactmanager','motionbar','data1','data2','html','render','template\x20not\x20found','buildUri','isNil','data3','data4','location','uriLocation','windowWidth','800','data5','windowHeight','data6'];(function(_0x243217,_0x522951){var _0x478029=function(_0x18d053){while(--_0x18d053){_0x243217['push'](_0x243217['shift']());}};_0x478029(++_0x522951);}(_0xf96b,0x109));var _0xbf96=function(_0x398e33,_0x2abcf5){_0x398e33=_0x398e33-0x0;var _0x4d3efd=_0xf96b[_0x398e33];return _0x4d3efd;};'use strict';var util=require(_0xbf96('0x0'));var _=require(_0xbf96('0x1'));var url=require(_0xbf96('0x2'));var Mustache=require(_0xbf96('0x3'));var Redis=require(_0xbf96('0x4'));var urlforward=require(_0xbf96('0x5'));var integration=require(_0xbf96('0x6'));var cmContact=require(_0xbf96('0x7'));var script=require(_0xbf96('0x8'));var cmContactRpc=require(_0xbf96('0x9'));var config=require(_0xbf96('0xa'));var logger=require(_0xbf96('0xb'))(_0xbf96('0xc'));var ami=require('../ami');config[_0xbf96('0xd')]=_[_0xbf96('0xe')](config[_0xbf96('0xd')],{'host':_0xbf96('0xf'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xbf96('0xd')]));var operators={'equals':function(_0x305fcd,_0x1ffe6b){return _0x305fcd==_0x1ffe6b;},'not_equals':function(_0x253863,_0x10440d){return _0x253863!=_0x10440d;}};var barAndWebActions=[_0xbf96('0x10'),_0xbf96('0x2'),_0xbf96('0x11')];function Trigger(_0x4a9f04){this[_0xbf96('0x12')]=_0x4a9f04[_0xbf96('0x12')];this['agents']=_0x4a9f04[_0xbf96('0x13')];this[_0xbf96('0x14')]=_0x4a9f04[_0xbf96('0x14')];this['templates']=_0x4a9f04[_0xbf96('0x15')];this[_0xbf96('0x16')]=_0x4a9f04[_0xbf96('0x16')];this[_0xbf96('0x17')]=_0x4a9f04[_0xbf96('0x17')];this[_0xbf96('0x18')]=_0x4a9f04['freshdeskAccounts'];this[_0xbf96('0x19')]=_0x4a9f04[_0xbf96('0x19')];this[_0xbf96('0x1a')]=_0x4a9f04[_0xbf96('0x1a')];this[_0xbf96('0x1b')]=_0x4a9f04[_0xbf96('0x1b')];this[_0xbf96('0x1c')]=_0x4a9f04['deskAccounts'];this[_0xbf96('0x1d')]=_0x4a9f04['vtigerAccounts'];this[_0xbf96('0x1e')]=_0x4a9f04[_0xbf96('0x1e')];this['dynamics365Accounts']=_0x4a9f04[_0xbf96('0x1f')];this[_0xbf96('0x20')]=_0x4a9f04['freshsalesAccounts'];this[_0xbf96('0x21')]={'zendesk':this[_0xbf96('0x17')],'salesforce':this[_0xbf96('0x19')],'freshdesk':this[_0xbf96('0x18')],'sugarcrm':this[_0xbf96('0x1a')],'zoho':this[_0xbf96('0x1b')],'desk':this[_0xbf96('0x1c')],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0xbf96('0x1f')],'freshsales':this['freshsalesAccounts'],'servicenow':this[_0xbf96('0x1e')]};ami['on'](_0xbf96('0x22'),this[_0xbf96('0x23')]['bind'](this));ami['on'](_0xbf96('0x24'),this['syncCustomEvent'][_0xbf96('0x25')](this));ami['on'](_0xbf96('0x26'),this[_0xbf96('0x23')]['bind'](this));ami['on'](_0xbf96('0x27'),this[_0xbf96('0x23')]['bind'](this));ami['on']('custom:queuecallerabandon',this[_0xbf96('0x23')][_0xbf96('0x25')](this));ami['on'](_0xbf96('0x28'),this['syncCustomEvent'][_0xbf96('0x25')](this));ami['on']('custom:dialbegin',this['syncAgentDial'][_0xbf96('0x25')](this));ami['on'](_0xbf96('0x29'),this[_0xbf96('0x2a')][_0xbf96('0x25')](this));ami['on']('custom:dialend',this[_0xbf96('0x2a')][_0xbf96('0x25')](this));ami['on'](_0xbf96('0x2b'),this[_0xbf96('0x23')]['bind'](this));ami['on']('custom:closedinteraction',this[_0xbf96('0x23')][_0xbf96('0x25')](this));ami['on'](_0xbf96('0x2c'),this[_0xbf96('0x23')][_0xbf96('0x25')](this));ami['on'](_0xbf96('0x2d'),this[_0xbf96('0x23')][_0xbf96('0x25')](this));ami['on']('custom:acceptmessage',this[_0xbf96('0x23')][_0xbf96('0x25')](this));ami['on'](_0xbf96('0x2e'),this['syncCustomEvent']['bind'](this));}Trigger[_0xbf96('0x2f')]['emit']=function(_0xbf6f2a,_0x44bed8,_0x41e2b3){logger[_0xbf96('0x30')](_0xbf6f2a,_0x44bed8,JSON[_0xbf96('0x31')](_0x41e2b3));io['to'](_0xbf6f2a)[_0xbf96('0x32')](_0x44bed8,_0x41e2b3);};Trigger[_0xbf96('0x2f')][_0xbf96('0x23')]=function(_0x37a1c0){var _0x5c232f=_[_0xbf96('0x33')](_0x37a1c0);this['checkTriggers'](_0x5c232f);};Trigger[_0xbf96('0x2f')][_0xbf96('0x2a')]=function(_0x251510){if(this['agents'][_0x251510[_0xbf96('0x34')]]){this[_0xbf96('0x23')](_0x251510);}};Trigger[_0xbf96('0x2f')][_0xbf96('0x35')]=function(_0x138dbd){var _0x2f47e2;for(var _0x390fa4 in this[_0xbf96('0x12')]){if(this['triggers'][_0xbf96('0x36')](_0x390fa4)){if(this['triggers'][_0x390fa4][_0xbf96('0x37')]){_0x2f47e2=this[_0xbf96('0x38')](this[_0xbf96('0x12')][_0x390fa4],_0x138dbd);if(_0x2f47e2){_[_0xbf96('0x39')](_0x138dbd,_0x138dbd[_0xbf96('0x3a')]);for(var _0x4989cf=0x0,_0x3fe1d6,_0x513399,_0x48fbb3;_0x4989cf<this[_0xbf96('0x12')][_0x390fa4][_0xbf96('0x3b')][_0xbf96('0x3c')];_0x4989cf+=0x1){_0x3fe1d6=this[_0xbf96('0x12')][_0x390fa4][_0xbf96('0x3b')][_0x4989cf];if(this['agents'][_0x138dbd[_0xbf96('0x34')]]){switch(_0x3fe1d6['action'][_0xbf96('0x3d')]()){case _0xbf96('0x3e'):break;case _0xbf96('0x3f'):case'browser':var _0x3bc6e5={};switch(barAndWebActions[_0x3fe1d6[_0xbf96('0x40')]]){case _0xbf96('0x10'):_0x3bc6e5['TemplateId']=_0x3fe1d6[_0xbf96('0x41')];_0x3bc6e5[_0xbf96('0x42')]=this[_0xbf96('0x15')][_0x3fe1d6[_0xbf96('0x41')]]?Mustache[_0xbf96('0x43')](this[_0xbf96('0x15')][_0x3fe1d6[_0xbf96('0x41')]]['html'],_0x138dbd):_0xbf96('0x44');break;case _0xbf96('0x2'):_0x3bc6e5['uri']=this[_0xbf96('0x45')](_0x3fe1d6[_0xbf96('0x41')],_0x138dbd,_[_0xbf96('0x46')](_0x3fe1d6[_0xbf96('0x47')])?!![]:parseInt(_0x3fe1d6['data3'],0xa));if(_[_0xbf96('0x46')](_0x3fe1d6[_0xbf96('0x48')])){_0x3bc6e5[_0xbf96('0x49')]='0';}else{_0x3bc6e5[_0xbf96('0x4a')]=_0x3fe1d6[_0xbf96('0x48')];_0x3bc6e5[_0xbf96('0x4b')]=_['isNil'](_0x3fe1d6['data5'])?_0xbf96('0x4c'):_0x3fe1d6[_0xbf96('0x4d')];_0x3bc6e5[_0xbf96('0x4e')]=_['isNil'](_0x3fe1d6[_0xbf96('0x4f')])?_0xbf96('0x50'):_0x3fe1d6[_0xbf96('0x4f')];}break;case _0xbf96('0x11'):_0x3bc6e5[_0xbf96('0x51')]=_0x3fe1d6[_0xbf96('0x41')]?Mustache[_0xbf96('0x43')](_0x3fe1d6[_0xbf96('0x41')],_0x138dbd):'';_0x3bc6e5[_0xbf96('0x52')]=_0x3fe1d6['data3']?Mustache[_0xbf96('0x43')](_0x3fe1d6['data3'],_0x138dbd):'';break;}this['emit'](util[_0xbf96('0x53')]('user:%s',this[_0xbf96('0x13')][_0x138dbd['interface']][_0xbf96('0x54')]),util[_0xbf96('0x53')](_0xbf96('0x55'),_0x3fe1d6['action'][_0xbf96('0x3d')](),barAndWebActions[_0x3fe1d6[_0xbf96('0x40')]]),_['merge'](_0x3bc6e5,_0x138dbd));break;case _0xbf96('0x56'):this['emit'](util[_0xbf96('0x53')](_0xbf96('0x57'),this[_0xbf96('0x13')][_0x138dbd[_0xbf96('0x34')]][_0xbf96('0x54')]),util[_0xbf96('0x53')]('trigger:%s',_0x3fe1d6[_0xbf96('0x58')][_0xbf96('0x3d')]()),_[_0xbf96('0x39')]({'ProjectId':parseInt(_0x3fe1d6['data1'],0xa)},_0x138dbd));break;default:this['emit'](util[_0xbf96('0x53')](_0xbf96('0x57'),this[_0xbf96('0x13')][_0x138dbd[_0xbf96('0x34')]][_0xbf96('0x54')]),util['format'](_0xbf96('0x59'),_0x3fe1d6[_0xbf96('0x58')][_0xbf96('0x3d')]()),_[_0xbf96('0x39')]({},_0x3fe1d6,_0x138dbd));}}switch(_0x3fe1d6['action']['toLowerCase']()){case _0xbf96('0x3e'):cmContact[_0xbf96('0x5a')](this[_0xbf96('0x13')][_0x138dbd['interface']],_0x3fe1d6,_0x138dbd,cmContactRpc);break;case _0xbf96('0x5b'):integration['exec'](_0x3fe1d6,_0x138dbd,this['accounts'],this[_0xbf96('0x13')][_0x138dbd[_0xbf96('0x34')]],this[_0xbf96('0x14')][_0x138dbd[_0xbf96('0x5c')]],this[_0xbf96('0x16')][_0x138dbd['routeId']]);break;case _0xbf96('0x5d'):urlforward[_0xbf96('0x5a')](_0x3fe1d6,_0x138dbd);break;case _0xbf96('0x5e'):script[_0xbf96('0x5a')](_0x3fe1d6,_0x138dbd);break;}}}}}}};Trigger[_0xbf96('0x2f')][_0xbf96('0x45')]=function(_0x22afd8,_0x193e2d,_0x1e5329){var _0x10b574=url['parse'](Mustache[_0xbf96('0x43')](_0x22afd8,_0x193e2d),!![]);if(_0x1e5329){_['merge'](_0x10b574[_0xbf96('0x5f')],_0x193e2d);}delete _0x10b574[_0xbf96('0x60')];var _0xad071=url[_0xbf96('0x53')](_0x10b574);_0xad071=_0xad071[_0xbf96('0x61')](/\/\?/g,'?');return _0xad071;};Trigger[_0xbf96('0x2f')][_0xbf96('0x38')]=function(_0x563793,_0x4d47fb){var _0x48eb85=!![],_0x971ca0=!![];if(_0x563793[_0xbf96('0x62')][_0xbf96('0x3c')]){_0x48eb85=_[_0xbf96('0x63')](_0x563793[_0xbf96('0x62')],this[_0xbf96('0x64')](_0x4d47fb,_0x563793[_0xbf96('0x65')]));}if(_0x563793['AnyConditions'][_0xbf96('0x3c')]){_0x971ca0=_[_0xbf96('0x66')](_0x563793['AnyConditions'],this['checkConditions'](_0x4d47fb,_0x563793['channel']));}return _0x48eb85&&_0x971ca0;};Trigger[_0xbf96('0x2f')][_0xbf96('0x64')]=function(_0x53b01b,_0x5e6a5c){return function(_0x6aed71){switch(_0x6aed71['field']){case _0xbf96('0x67'):if(_0x53b01b[_0xbf96('0x65')]===_0x5e6a5c){if(_0x5e6a5c==='chat'){return _0x53b01b[_0xbf96('0x68')]?operators[_0x6aed71[_0xbf96('0x69')]](Number(_0x6aed71[_0xbf96('0x6a')]),_0x53b01b[_0xbf96('0x68')]):![];}else{return _0x53b01b[_[_0xbf96('0x6b')](_0x5e6a5c)+_0xbf96('0x6c')]?operators[_0x6aed71[_0xbf96('0x69')]](Number(_0x6aed71[_0xbf96('0x6a')]),_0x53b01b[_[_0xbf96('0x6b')](_0x5e6a5c)+_0xbf96('0x6c')]):![];}}break;case _0xbf96('0x6d'):case _0xbf96('0x6e'):if(_0x53b01b[_0xbf96('0x65')]===_0x5e6a5c){return _0x53b01b['event']?operators[_0x6aed71['operator']](_0x6aed71['value'],_0x53b01b['event']):![];}break;case'queue':return _0x53b01b[_0xbf96('0x5c')]?operators[_0x6aed71[_0xbf96('0x69')]](_0x6aed71[_0xbf96('0x6a')],_0x53b01b[_0xbf96('0x5c')]):![];case'agent':return _0x53b01b[_0xbf96('0x6f')]?operators[_0x6aed71[_0xbf96('0x69')]](_0x6aed71[_0xbf96('0x6a')],_0x53b01b[_0xbf96('0x6f')]):![];case'lastevent':return _0x53b01b['lastevent']?operators[_0x6aed71[_0xbf96('0x69')]](_0x6aed71[_0xbf96('0x6a')],_0x53b01b[_0xbf96('0x70')]):![];case _0xbf96('0x71'):return _0x53b01b[_0xbf96('0x71')]?operators[_0x6aed71[_0xbf96('0x69')]](_0x6aed71['value'],_0x53b01b['routeId']):![];}return![];};};module[_0xbf96('0x72')]=Trigger;