e0293d131ff6b2453466a3c0dd9c5f87de45615e
[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 _0xd5f9=['urlforward','script','query','search','replace','channel','AllConditions','length','every','checkConditions','AnyConditions','some','account','ChatWebsiteId','value','AccountId','event','operator','queue','agent','membername','lastevent','mailSubstatus','substatus','equals','util','lodash','url','mustache','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','defaults','redis','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','salesforceAccounts','custom:agentcalled','syncCustomEvent','custom:agentconnect','bind','custom:agentcomplete','custom:agentbusy','custom:agentreject','custom:timeout','syncAgentDial','custom:dialconnect','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','prototype','emit','info','stringify','clone','motionChannel','voice','hasOwnProperty','status','checkTrigger','merge','variables','Actions','interface','toLowerCase','browser','data1','TemplateId','data2','html','render','uri','buildUri','data3','isNil','data4','location','uriLocation','windowWidth','data5','800','windowHeight','data6','600','winApplication','winArguments','format','user:%s','name','action','trigger:%s','contactmanager','exec','integration','routeId'];(function(_0xf02f86,_0x2af699){var _0x34e6bb=function(_0x1a9e75){while(--_0x1a9e75){_0xf02f86['push'](_0xf02f86['shift']());}};_0x34e6bb(++_0x2af699);}(_0xd5f9,0x1f1));var _0x9d5f=function(_0x3c7f1d,_0x44b37b){_0x3c7f1d=_0x3c7f1d-0x0;var _0xd7ab0c=_0xd5f9[_0x3c7f1d];return _0xd7ab0c;};'use strict';var util=require(_0x9d5f('0x0'));var _=require(_0x9d5f('0x1'));var url=require(_0x9d5f('0x2'));var Mustache=require(_0x9d5f('0x3'));var Redis=require('ioredis');var urlforward=require(_0x9d5f('0x4'));var integration=require(_0x9d5f('0x5'));var cmContact=require(_0x9d5f('0x6'));var script=require(_0x9d5f('0x7'));var config=require(_0x9d5f('0x8'));var logger=require(_0x9d5f('0x9'))('trigger');var ami=require('../ami');config['redis']=_[_0x9d5f('0xa')](config[_0x9d5f('0xb')],{'host':'localhost','port':0x18eb});var io=require(_0x9d5f('0xc'))(new Redis(config[_0x9d5f('0xb')]));var operators={'equals':function(_0x4bb4a2,_0x1960f8){return _0x4bb4a2==_0x1960f8;},'not_equals':function(_0x241166,_0x4c3def){return _0x241166!=_0x4c3def;}};var barAndWebActions=[_0x9d5f('0xd'),'url',_0x9d5f('0xe')];function Trigger(_0x3b71ed){this[_0x9d5f('0xf')]=_0x3b71ed[_0x9d5f('0xf')];this[_0x9d5f('0x10')]=_0x3b71ed['agents'];this[_0x9d5f('0x11')]=_0x3b71ed[_0x9d5f('0x11')];this[_0x9d5f('0x12')]=_0x3b71ed[_0x9d5f('0x12')];this[_0x9d5f('0x13')]=_0x3b71ed[_0x9d5f('0x13')];this[_0x9d5f('0x14')]=_0x3b71ed[_0x9d5f('0x14')];this[_0x9d5f('0x15')]=_0x3b71ed['freshdeskAccounts'];this['salesforceAccounts']=_0x3b71ed['salesforceAccounts'];this['sugarcrmAccounts']=_0x3b71ed[_0x9d5f('0x16')];this[_0x9d5f('0x17')]=_0x3b71ed['zohoAccounts'];this[_0x9d5f('0x18')]=_0x3b71ed[_0x9d5f('0x18')];this[_0x9d5f('0x19')]=_0x3b71ed[_0x9d5f('0x19')];this[_0x9d5f('0x1a')]=_0x3b71ed['servicenowAccounts'];this[_0x9d5f('0x1b')]=_0x3b71ed[_0x9d5f('0x1b')];this[_0x9d5f('0x1c')]=_0x3b71ed[_0x9d5f('0x1c')];this[_0x9d5f('0x1d')]={'zendesk':this[_0x9d5f('0x14')],'salesforce':this[_0x9d5f('0x1e')],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0x9d5f('0x16')],'zoho':this[_0x9d5f('0x17')],'desk':this[_0x9d5f('0x18')],'vtiger':this['vtigerAccounts'],'dynamics365':this['dynamics365Accounts'],'freshsales':this[_0x9d5f('0x1c')],'servicenow':this[_0x9d5f('0x1a')]};ami['on'](_0x9d5f('0x1f'),this[_0x9d5f('0x20')]['bind'](this));ami['on'](_0x9d5f('0x21'),this['syncCustomEvent'][_0x9d5f('0x22')](this));ami['on']('custom:agentringnoanswer',this[_0x9d5f('0x20')][_0x9d5f('0x22')](this));ami['on'](_0x9d5f('0x23'),this[_0x9d5f('0x20')][_0x9d5f('0x22')](this));ami['on']('custom:agentnosuchnumber',this[_0x9d5f('0x20')][_0x9d5f('0x22')](this));ami['on']('custom:agentnoanswer',this[_0x9d5f('0x20')][_0x9d5f('0x22')](this));ami['on'](_0x9d5f('0x24'),this[_0x9d5f('0x20')][_0x9d5f('0x22')](this));ami['on']('custom:agentcongestion',this[_0x9d5f('0x20')][_0x9d5f('0x22')](this));ami['on'](_0x9d5f('0x25'),this['syncCustomEvent'][_0x9d5f('0x22')](this));ami['on']('custom:amd',this[_0x9d5f('0x20')][_0x9d5f('0x22')](this));ami['on']('custom:queuecallerabandon',this[_0x9d5f('0x20')][_0x9d5f('0x22')](this));ami['on'](_0x9d5f('0x26'),this['syncCustomEvent']['bind'](this));ami['on']('custom:dialbegin',this[_0x9d5f('0x27')][_0x9d5f('0x22')](this));ami['on'](_0x9d5f('0x28'),this['syncAgentDial'][_0x9d5f('0x22')](this));ami['on']('custom:dialend',this[_0x9d5f('0x27')][_0x9d5f('0x22')](this));ami['on'](_0x9d5f('0x29'),this[_0x9d5f('0x20')][_0x9d5f('0x22')](this));ami['on'](_0x9d5f('0x2a'),this['syncCustomEvent'][_0x9d5f('0x22')](this));ami['on'](_0x9d5f('0x2b'),this[_0x9d5f('0x20')]['bind'](this));ami['on']('custom:incomingmessage',this[_0x9d5f('0x20')][_0x9d5f('0x22')](this));ami['on'](_0x9d5f('0x2c'),this[_0x9d5f('0x20')][_0x9d5f('0x22')](this));ami['on'](_0x9d5f('0x2d'),this[_0x9d5f('0x20')][_0x9d5f('0x22')](this));ami['on'](_0x9d5f('0x2e'),this[_0x9d5f('0x20')][_0x9d5f('0x22')](this));ami['on'](_0x9d5f('0x2f'),this[_0x9d5f('0x20')][_0x9d5f('0x22')](this));}Trigger[_0x9d5f('0x30')][_0x9d5f('0x31')]=function(_0xefc4bd,_0x118406,_0x215ec8){logger[_0x9d5f('0x32')](_0xefc4bd,_0x118406,JSON[_0x9d5f('0x33')](_0x215ec8));io['to'](_0xefc4bd)['emit'](_0x118406,_0x215ec8);};Trigger['prototype'][_0x9d5f('0x20')]=function(_0x3eb23c){var _0x3a4064=_[_0x9d5f('0x34')](_0x3eb23c);if(typeof _0x3a4064[_0x9d5f('0x35')]==='undefined'){_0x3a4064['motionChannel']=_0x9d5f('0x36');}this['checkTriggers'](_0x3a4064);};Trigger[_0x9d5f('0x30')]['syncAgentDial']=function(_0xfdde7c){if(this[_0x9d5f('0x10')][_0xfdde7c['interface']]){this[_0x9d5f('0x20')](_0xfdde7c);}};Trigger[_0x9d5f('0x30')]['checkTriggers']=function(_0x415c0c){var _0x55172a;for(var _0x5b9f1e in this[_0x9d5f('0xf')]){if(this[_0x9d5f('0xf')][_0x9d5f('0x37')](_0x5b9f1e)){if(this[_0x9d5f('0xf')][_0x5b9f1e][_0x9d5f('0x38')]){_0x55172a=this[_0x9d5f('0x39')](this[_0x9d5f('0xf')][_0x5b9f1e],_0x415c0c);if(_0x55172a){_[_0x9d5f('0x3a')](_0x415c0c,_0x415c0c[_0x9d5f('0x3b')]);for(var _0x37ecb4=0x0,_0xc1488d,_0x1fba76,_0x30a14d;_0x37ecb4<this[_0x9d5f('0xf')][_0x5b9f1e][_0x9d5f('0x3c')]['length'];_0x37ecb4+=0x1){_0xc1488d=this[_0x9d5f('0xf')][_0x5b9f1e]['Actions'][_0x37ecb4];if(this[_0x9d5f('0x10')][_0x415c0c[_0x9d5f('0x3d')]]){switch(_0xc1488d['action'][_0x9d5f('0x3e')]()){case'contactmanager':break;case'motionbar':case _0x9d5f('0x3f'):var _0x2010cf={};switch(barAndWebActions[_0xc1488d[_0x9d5f('0x40')]]){case'popup':_0x2010cf[_0x9d5f('0x41')]=_0xc1488d[_0x9d5f('0x42')];_0x2010cf[_0x9d5f('0x43')]=this['templates'][_0xc1488d['data2']]?Mustache[_0x9d5f('0x44')](this['templates'][_0xc1488d[_0x9d5f('0x42')]][_0x9d5f('0x43')],_0x415c0c):'template\x20not\x20found';break;case'url':_0x2010cf[_0x9d5f('0x45')]=this[_0x9d5f('0x46')](_0xc1488d[_0x9d5f('0x42')],_0x415c0c,_['isNil'](_0xc1488d['data3'])?!![]:parseInt(_0xc1488d[_0x9d5f('0x47')],0xa));if(_[_0x9d5f('0x48')](_0xc1488d[_0x9d5f('0x49')])){_0x2010cf[_0x9d5f('0x4a')]='0';}else{_0x2010cf[_0x9d5f('0x4b')]=_0xc1488d[_0x9d5f('0x49')];_0x2010cf[_0x9d5f('0x4c')]=_['isNil'](_0xc1488d[_0x9d5f('0x4d')])?_0x9d5f('0x4e'):_0xc1488d[_0x9d5f('0x4d')];_0x2010cf[_0x9d5f('0x4f')]=_[_0x9d5f('0x48')](_0xc1488d[_0x9d5f('0x50')])?_0x9d5f('0x51'):_0xc1488d['data6'];}break;case _0x9d5f('0xe'):_0x2010cf[_0x9d5f('0x52')]=_0xc1488d[_0x9d5f('0x42')]?Mustache[_0x9d5f('0x44')](_0xc1488d[_0x9d5f('0x42')],_0x415c0c):'';_0x2010cf[_0x9d5f('0x53')]=_0xc1488d[_0x9d5f('0x47')]?Mustache['render'](_0xc1488d['data3'],_0x415c0c):'';break;}this[_0x9d5f('0x31')](util[_0x9d5f('0x54')](_0x9d5f('0x55'),this[_0x9d5f('0x10')][_0x415c0c['interface']][_0x9d5f('0x56')]),util[_0x9d5f('0x54')]('trigger:%s:%s',_0xc1488d[_0x9d5f('0x57')][_0x9d5f('0x3e')](),barAndWebActions[_0xc1488d['data1']]),_['merge'](_0x2010cf,_0x415c0c));break;case'jscripty':this['emit'](util[_0x9d5f('0x54')]('user:%s',this[_0x9d5f('0x10')][_0x415c0c[_0x9d5f('0x3d')]][_0x9d5f('0x56')]),util[_0x9d5f('0x54')](_0x9d5f('0x58'),_0xc1488d[_0x9d5f('0x57')]['toLowerCase']()),_[_0x9d5f('0x3a')]({'ProjectId':parseInt(_0xc1488d[_0x9d5f('0x40')],0xa)},_0x415c0c));break;default:this[_0x9d5f('0x31')](util[_0x9d5f('0x54')]('user:%s',this[_0x9d5f('0x10')][_0x415c0c[_0x9d5f('0x3d')]][_0x9d5f('0x56')]),util['format'](_0x9d5f('0x58'),_0xc1488d[_0x9d5f('0x57')][_0x9d5f('0x3e')]()),_[_0x9d5f('0x3a')]({},_0xc1488d,_0x415c0c));}}switch(_0xc1488d[_0x9d5f('0x57')][_0x9d5f('0x3e')]()){case _0x9d5f('0x59'):cmContact[_0x9d5f('0x5a')](this['agents'][_0x415c0c[_0x9d5f('0x3d')]],this[_0x9d5f('0xf')][_0x5b9f1e],_0xc1488d,_0x415c0c);break;case _0x9d5f('0x5b'):integration['exec'](_0xc1488d,_0x415c0c,this['accounts'],this[_0x9d5f('0x10')][_0x415c0c[_0x9d5f('0x3d')]],this[_0x9d5f('0x11')][_0x415c0c['queue']],this[_0x9d5f('0x13')][_0x415c0c[_0x9d5f('0x5c')]]);break;case _0x9d5f('0x5d'):urlforward[_0x9d5f('0x5a')](_0xc1488d,_0x415c0c);break;case _0x9d5f('0x5e'):script[_0x9d5f('0x5a')](_0xc1488d,_0x415c0c);break;}}}}}}};Trigger['prototype'][_0x9d5f('0x46')]=function(_0x36204f,_0x145c94,_0x17a28d){var _0x3606a9=url['parse'](Mustache[_0x9d5f('0x44')](_0x36204f,_0x145c94),!![]);if(_0x17a28d){_['merge'](_0x3606a9[_0x9d5f('0x5f')],_0x145c94);}delete _0x3606a9[_0x9d5f('0x60')];var _0x2778a6=url[_0x9d5f('0x54')](_0x3606a9);_0x2778a6=_0x2778a6[_0x9d5f('0x61')](/\/\?/g,'?');return _0x2778a6;};Trigger['prototype'][_0x9d5f('0x39')]=function(_0x2fb366,_0x23d71e){var _0x31faa0=!![];var _0x1d9d8f=!![];var _0x4b05b6=![];if(_0x2fb366[_0x9d5f('0x62')]===_0x23d71e[_0x9d5f('0x35')]){_0x4b05b6=!![];}if(_0x2fb366[_0x9d5f('0x63')][_0x9d5f('0x64')]){_0x31faa0=_[_0x9d5f('0x65')](_0x2fb366['AllConditions'],this[_0x9d5f('0x66')](_0x23d71e,_0x2fb366[_0x9d5f('0x62')]));}if(_0x2fb366[_0x9d5f('0x67')][_0x9d5f('0x64')]){_0x1d9d8f=_[_0x9d5f('0x68')](_0x2fb366['AnyConditions'],this[_0x9d5f('0x66')](_0x23d71e,_0x2fb366[_0x9d5f('0x62')]));}return _0x4b05b6&&_0x31faa0&&_0x1d9d8f;};Trigger[_0x9d5f('0x30')][_0x9d5f('0x66')]=function(_0x200ad4,_0x6ca126){return function(_0x49ce9e){switch(_0x49ce9e['field']){case _0x9d5f('0x69'):if(_0x200ad4[_0x9d5f('0x62')]===_0x6ca126){if(_0x6ca126==='chat'){return _0x200ad4[_0x9d5f('0x6a')]?operators[_0x49ce9e['operator']](Number(_0x49ce9e['value']),_0x200ad4[_0x9d5f('0x6a')]):![];}else{return _0x200ad4[_['upperFirst'](_0x6ca126)+'AccountId']?operators[_0x49ce9e['operator']](Number(_0x49ce9e[_0x9d5f('0x6b')]),_0x200ad4[_['upperFirst'](_0x6ca126)+_0x9d5f('0x6c')]):![];}}break;case'interaction':case'message':if(_0x200ad4[_0x9d5f('0x62')]===_0x6ca126){return _0x200ad4[_0x9d5f('0x6d')]?operators[_0x49ce9e[_0x9d5f('0x6e')]](_0x49ce9e[_0x9d5f('0x6b')],_0x200ad4['event']):![];}break;case _0x9d5f('0x6f'):return _0x200ad4['queue']?operators[_0x49ce9e['operator']](_0x49ce9e[_0x9d5f('0x6b')],_0x200ad4[_0x9d5f('0x6f')]):![];case _0x9d5f('0x70'):return _0x200ad4[_0x9d5f('0x71')]?operators[_0x49ce9e[_0x9d5f('0x6e')]](_0x49ce9e['value'],_0x200ad4['membername']):![];case'lastevent':return _0x200ad4['lastevent']?operators[_0x49ce9e['operator']](_0x49ce9e['value'],_0x200ad4[_0x9d5f('0x72')]):![];case _0x9d5f('0x5c'):return _0x200ad4[_0x9d5f('0x5c')]?operators[_0x49ce9e[_0x9d5f('0x6e')]](_0x49ce9e[_0x9d5f('0x6b')],_0x200ad4['routeId']):![];case _0x9d5f('0x73'):if(_0x49ce9e['value']==='null')_0x49ce9e[_0x9d5f('0x6b')]=null;return typeof _0x200ad4[_0x9d5f('0x74')]!=='undefined'?operators[_0x49ce9e[_0x9d5f('0x6e')]](_0x49ce9e[_0x9d5f('0x6b')],_0x200ad4[_0x9d5f('0x74')]):![];case'offlineMessage':if(_0x200ad4[_0x9d5f('0x62')]===_0x6ca126){return _0x49ce9e[_0x9d5f('0x6b')]==='created'&&_0x49ce9e[_0x9d5f('0x6e')]===_0x9d5f('0x75')?!![]:![];}break;}return![];};};module['exports']=Trigger;