Built motion from commit eddce310.|2.6.12
[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 _0x1bdc=['event','agent','membername','lastevent','mailSubstatus','substatus','created','equals','exports','util','lodash','url','mustache','ioredis','./urlforward','./cmContact','./script','../../../config/logger','../ami','defaults','redis','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:agentnoanswer','custom:agentcongestion','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','prototype','emit','info','stringify','motionChannel','voice','debug','inspect','checkTriggers','interface','status','checkTrigger','merge','variables','Actions','length','action','toLowerCase','motionbar','data1','TemplateId','data2','html','render','template\x20not\x20found','uri','isNil','data3','data4','location','uriLocation','data5','600','data6','winApplication','winArguments','format','user:%s','name','trigger:%s:%s','jscripty','trigger:%s','contactmanager','exec','integration','queue','routeId','urlforward','script','buildUri','search','replace','channel','AllConditions','every','checkConditions','AnyConditions','some','checkTrigger:\x20trigger','ChatWebsiteId','operator','value','upperFirst','AccountId','interaction','message'];(function(_0x410232,_0x4454ff){var _0x1266b3=function(_0x220151){while(--_0x220151){_0x410232['push'](_0x410232['shift']());}};_0x1266b3(++_0x4454ff);}(_0x1bdc,0x85));var _0xc1bd=function(_0x4652e3,_0x5348a7){_0x4652e3=_0x4652e3-0x0;var _0x1b55c1=_0x1bdc[_0x4652e3];return _0x1b55c1;};'use strict';var util=require(_0xc1bd('0x0'));var _=require(_0xc1bd('0x1'));var url=require(_0xc1bd('0x2'));var Mustache=require(_0xc1bd('0x3'));var Redis=require(_0xc1bd('0x4'));var urlforward=require(_0xc1bd('0x5'));var integration=require('./integration');var cmContact=require(_0xc1bd('0x6'));var script=require(_0xc1bd('0x7'));var config=require('../../../config/environment');var logger=require(_0xc1bd('0x8'))('trigger');var ami=require(_0xc1bd('0x9'));config['redis']=_[_0xc1bd('0xa')](config[_0xc1bd('0xb')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xc1bd('0xb')]));var operators={'equals':function(_0x5c7d3e,_0x2ad08f){return _0x5c7d3e==_0x2ad08f;},'not_equals':function(_0x3fab65,_0x1f3a16){return _0x3fab65!=_0x1f3a16;}};var barAndWebActions=['popup',_0xc1bd('0x2'),_0xc1bd('0xc')];function Trigger(_0x2d5e61){this[_0xc1bd('0xd')]=_0x2d5e61[_0xc1bd('0xd')];this[_0xc1bd('0xe')]=_0x2d5e61[_0xc1bd('0xe')];this[_0xc1bd('0xf')]=_0x2d5e61[_0xc1bd('0xf')];this[_0xc1bd('0x10')]=_0x2d5e61[_0xc1bd('0x10')];this['voiceExtensions']=_0x2d5e61[_0xc1bd('0x11')];this[_0xc1bd('0x12')]=_0x2d5e61[_0xc1bd('0x12')];this[_0xc1bd('0x13')]=_0x2d5e61['freshdeskAccounts'];this[_0xc1bd('0x14')]=_0x2d5e61[_0xc1bd('0x14')];this[_0xc1bd('0x15')]=_0x2d5e61[_0xc1bd('0x15')];this[_0xc1bd('0x16')]=_0x2d5e61[_0xc1bd('0x16')];this['deskAccounts']=_0x2d5e61[_0xc1bd('0x17')];this[_0xc1bd('0x18')]=_0x2d5e61[_0xc1bd('0x18')];this[_0xc1bd('0x19')]=_0x2d5e61[_0xc1bd('0x19')];this[_0xc1bd('0x1a')]=_0x2d5e61[_0xc1bd('0x1a')];this[_0xc1bd('0x1b')]=_0x2d5e61[_0xc1bd('0x1b')];this[_0xc1bd('0x1c')]={'zendesk':this[_0xc1bd('0x12')],'salesforce':this[_0xc1bd('0x14')],'freshdesk':this[_0xc1bd('0x13')],'sugarcrm':this[_0xc1bd('0x15')],'zoho':this[_0xc1bd('0x16')],'desk':this[_0xc1bd('0x17')],'vtiger':this[_0xc1bd('0x18')],'dynamics365':this['dynamics365Accounts'],'freshsales':this[_0xc1bd('0x1b')],'servicenow':this['servicenowAccounts']};ami['on'](_0xc1bd('0x1d'),this[_0xc1bd('0x1e')][_0xc1bd('0x1f')](this));ami['on'](_0xc1bd('0x20'),this[_0xc1bd('0x1e')]['bind'](this));ami['on'](_0xc1bd('0x21'),this['syncCustomEvent'][_0xc1bd('0x1f')](this));ami['on'](_0xc1bd('0x22'),this[_0xc1bd('0x1e')]['bind'](this));ami['on']('custom:agentnosuchnumber',this[_0xc1bd('0x1e')]['bind'](this));ami['on'](_0xc1bd('0x23'),this[_0xc1bd('0x1e')]['bind'](this));ami['on']('custom:agentbusy',this[_0xc1bd('0x1e')][_0xc1bd('0x1f')](this));ami['on'](_0xc1bd('0x24'),this[_0xc1bd('0x1e')][_0xc1bd('0x1f')](this));ami['on']('custom:agentreject',this[_0xc1bd('0x1e')][_0xc1bd('0x1f')](this));ami['on'](_0xc1bd('0x25'),this['syncCustomEvent'][_0xc1bd('0x1f')](this));ami['on'](_0xc1bd('0x26'),this['syncCustomEvent'][_0xc1bd('0x1f')](this));ami['on'](_0xc1bd('0x27'),this[_0xc1bd('0x1e')][_0xc1bd('0x1f')](this));ami['on'](_0xc1bd('0x28'),this[_0xc1bd('0x29')][_0xc1bd('0x1f')](this));ami['on']('custom:dialconnect',this[_0xc1bd('0x29')][_0xc1bd('0x1f')](this));ami['on']('custom:dialend',this[_0xc1bd('0x29')]['bind'](this));ami['on'](_0xc1bd('0x2a'),this[_0xc1bd('0x1e')][_0xc1bd('0x1f')](this));ami['on'](_0xc1bd('0x2b'),this[_0xc1bd('0x1e')][_0xc1bd('0x1f')](this));ami['on'](_0xc1bd('0x2c'),this['syncCustomEvent'][_0xc1bd('0x1f')](this));ami['on'](_0xc1bd('0x2d'),this[_0xc1bd('0x1e')][_0xc1bd('0x1f')](this));ami['on']('custom:outgoingmessage',this['syncCustomEvent'][_0xc1bd('0x1f')](this));ami['on'](_0xc1bd('0x2e'),this[_0xc1bd('0x1e')][_0xc1bd('0x1f')](this));ami['on'](_0xc1bd('0x2f'),this[_0xc1bd('0x1e')][_0xc1bd('0x1f')](this));ami['on'](_0xc1bd('0x30'),this[_0xc1bd('0x1e')][_0xc1bd('0x1f')](this));}Trigger[_0xc1bd('0x31')][_0xc1bd('0x32')]=function(_0x57b9c9,_0x554eb4,_0x2c77d2){logger[_0xc1bd('0x33')](_0x57b9c9,_0x554eb4,JSON[_0xc1bd('0x34')](_0x2c77d2));io['to'](_0x57b9c9)[_0xc1bd('0x32')](_0x554eb4,_0x2c77d2);};Trigger[_0xc1bd('0x31')][_0xc1bd('0x1e')]=function(_0x4a4319){var _0x304c93=_['clone'](_0x4a4319);if(typeof _0x304c93[_0xc1bd('0x35')]==='undefined'){_0x304c93[_0xc1bd('0x35')]=_0xc1bd('0x36');}logger[_0xc1bd('0x37')]('syncCustomEvent',util[_0xc1bd('0x38')](_0x304c93,{'showHidden':!![],'depth':null}));this[_0xc1bd('0x39')](_0x304c93);};Trigger[_0xc1bd('0x31')][_0xc1bd('0x29')]=function(_0x7bf710){if(this[_0xc1bd('0xe')][_0x7bf710[_0xc1bd('0x3a')]]){this[_0xc1bd('0x1e')](_0x7bf710);}};Trigger[_0xc1bd('0x31')][_0xc1bd('0x39')]=function(_0x5239a2){var _0x330f7e;for(var _0x411a67 in this[_0xc1bd('0xd')]){if(this[_0xc1bd('0xd')]['hasOwnProperty'](_0x411a67)){if(this['triggers'][_0x411a67][_0xc1bd('0x3b')]){_0x330f7e=this[_0xc1bd('0x3c')](this['triggers'][_0x411a67],_0x5239a2);if(_0x330f7e){_[_0xc1bd('0x3d')](_0x5239a2,_0x5239a2[_0xc1bd('0x3e')]);for(var _0x56df8c=0x0,_0x56240b,_0xbf0007,_0x5d4994;_0x56df8c<this[_0xc1bd('0xd')][_0x411a67][_0xc1bd('0x3f')][_0xc1bd('0x40')];_0x56df8c+=0x1){_0x56240b=this['triggers'][_0x411a67]['Actions'][_0x56df8c];if(this[_0xc1bd('0xe')][_0x5239a2[_0xc1bd('0x3a')]]){switch(_0x56240b[_0xc1bd('0x41')][_0xc1bd('0x42')]()){case'contactmanager':break;case _0xc1bd('0x43'):case'browser':var _0x5ed2ab={};switch(barAndWebActions[_0x56240b[_0xc1bd('0x44')]]){case'popup':_0x5ed2ab[_0xc1bd('0x45')]=_0x56240b[_0xc1bd('0x46')];_0x5ed2ab[_0xc1bd('0x47')]=this['templates'][_0x56240b[_0xc1bd('0x46')]]?Mustache[_0xc1bd('0x48')](this['templates'][_0x56240b[_0xc1bd('0x46')]][_0xc1bd('0x47')],_0x5239a2):_0xc1bd('0x49');break;case'url':_0x5ed2ab[_0xc1bd('0x4a')]=this['buildUri'](_0x56240b['data2'],_0x5239a2,_[_0xc1bd('0x4b')](_0x56240b['data3'])?!![]:parseInt(_0x56240b[_0xc1bd('0x4c')],0xa));if(_['isNil'](_0x56240b[_0xc1bd('0x4d')])){_0x5ed2ab[_0xc1bd('0x4e')]='0';}else{_0x5ed2ab[_0xc1bd('0x4f')]=_0x56240b[_0xc1bd('0x4d')];_0x5ed2ab['windowWidth']=_[_0xc1bd('0x4b')](_0x56240b[_0xc1bd('0x50')])?'800':_0x56240b[_0xc1bd('0x50')];_0x5ed2ab['windowHeight']=_[_0xc1bd('0x4b')](_0x56240b['data6'])?_0xc1bd('0x51'):_0x56240b[_0xc1bd('0x52')];}break;case'winapp':_0x5ed2ab[_0xc1bd('0x53')]=_0x56240b[_0xc1bd('0x46')]?Mustache[_0xc1bd('0x48')](_0x56240b[_0xc1bd('0x46')],_0x5239a2):'';_0x5ed2ab[_0xc1bd('0x54')]=_0x56240b[_0xc1bd('0x4c')]?Mustache['render'](_0x56240b[_0xc1bd('0x4c')],_0x5239a2):'';break;}this[_0xc1bd('0x32')](util[_0xc1bd('0x55')](_0xc1bd('0x56'),this[_0xc1bd('0xe')][_0x5239a2[_0xc1bd('0x3a')]][_0xc1bd('0x57')]),util[_0xc1bd('0x55')](_0xc1bd('0x58'),_0x56240b['action']['toLowerCase'](),barAndWebActions[_0x56240b[_0xc1bd('0x44')]]),_['merge'](_0x5ed2ab,_0x5239a2));break;case _0xc1bd('0x59'):this[_0xc1bd('0x32')](util[_0xc1bd('0x55')](_0xc1bd('0x56'),this[_0xc1bd('0xe')][_0x5239a2[_0xc1bd('0x3a')]][_0xc1bd('0x57')]),util[_0xc1bd('0x55')](_0xc1bd('0x5a'),_0x56240b[_0xc1bd('0x41')][_0xc1bd('0x42')]()),_[_0xc1bd('0x3d')]({'ProjectId':parseInt(_0x56240b['data1'],0xa)},_0x5239a2));break;default:this['emit'](util['format']('user:%s',this[_0xc1bd('0xe')][_0x5239a2['interface']][_0xc1bd('0x57')]),util[_0xc1bd('0x55')](_0xc1bd('0x5a'),_0x56240b['action'][_0xc1bd('0x42')]()),_[_0xc1bd('0x3d')]({},_0x56240b,_0x5239a2));}}switch(_0x56240b[_0xc1bd('0x41')][_0xc1bd('0x42')]()){case _0xc1bd('0x5b'):cmContact[_0xc1bd('0x5c')](this['agents'][_0x5239a2[_0xc1bd('0x3a')]],this['triggers'][_0x411a67],_0x56240b,_0x5239a2);break;case _0xc1bd('0x5d'):integration[_0xc1bd('0x5c')](_0x56240b,_0x5239a2,this[_0xc1bd('0x1c')],this[_0xc1bd('0xe')][_0x5239a2[_0xc1bd('0x3a')]],this[_0xc1bd('0xf')][_0x5239a2[_0xc1bd('0x5e')]],this[_0xc1bd('0x11')][_0x5239a2[_0xc1bd('0x5f')]]);break;case _0xc1bd('0x60'):urlforward[_0xc1bd('0x5c')](_0x56240b,_0x5239a2);break;case _0xc1bd('0x61'):script[_0xc1bd('0x5c')](_0x56240b,_0x5239a2);break;}}}}}}};Trigger[_0xc1bd('0x31')][_0xc1bd('0x62')]=function(_0x43a785,_0x4b8099,_0x3a32d4){var _0x5ab25e=url['parse'](Mustache['render'](_0x43a785,_0x4b8099),!![]);if(_0x3a32d4){_[_0xc1bd('0x3d')](_0x5ab25e['query'],_0x4b8099);}delete _0x5ab25e[_0xc1bd('0x63')];var _0x2f7b0c=url[_0xc1bd('0x55')](_0x5ab25e);_0x2f7b0c=_0x2f7b0c[_0xc1bd('0x64')](/\/\?/g,'?');return _0x2f7b0c;};Trigger[_0xc1bd('0x31')][_0xc1bd('0x3c')]=function(_0x4d7e59,_0x4500e2){var _0x2b8a8e=!![];var _0x8eb90d=!![];var _0x522c0e=![];if(_0x4d7e59[_0xc1bd('0x65')]===_0x4500e2[_0xc1bd('0x35')]){_0x522c0e=!![];}if(_0x4d7e59[_0xc1bd('0x66')][_0xc1bd('0x40')]){_0x2b8a8e=_[_0xc1bd('0x67')](_0x4d7e59[_0xc1bd('0x66')],this[_0xc1bd('0x68')](_0x4500e2,_0x4d7e59['channel']));}if(_0x4d7e59[_0xc1bd('0x69')][_0xc1bd('0x40')]){_0x8eb90d=_[_0xc1bd('0x6a')](_0x4d7e59[_0xc1bd('0x69')],this[_0xc1bd('0x68')](_0x4500e2,_0x4d7e59[_0xc1bd('0x65')]));}var _0x5b7262=_0x522c0e&&_0x2b8a8e&&_0x8eb90d;logger['debug'](_0xc1bd('0x6b'),util[_0xc1bd('0x38')](_0x4d7e59,{'showHidden':!![],'depth':null}),'evt',util[_0xc1bd('0x38')](_0x4500e2,{'showHidden':!![],'depth':null}),_0x522c0e,_0x2b8a8e,_0x8eb90d);return _0x5b7262;};Trigger[_0xc1bd('0x31')][_0xc1bd('0x68')]=function(_0x241997,_0x561b04){return function(_0x52958e){switch(_0x52958e['field']){case'account':if(_0x241997[_0xc1bd('0x65')]===_0x561b04){if(_0x561b04==='chat'){return _0x241997[_0xc1bd('0x6c')]?operators[_0x52958e[_0xc1bd('0x6d')]](Number(_0x52958e[_0xc1bd('0x6e')]),_0x241997[_0xc1bd('0x6c')]):![];}else{return _0x241997[_[_0xc1bd('0x6f')](_0x561b04)+_0xc1bd('0x70')]?operators[_0x52958e[_0xc1bd('0x6d')]](Number(_0x52958e[_0xc1bd('0x6e')]),_0x241997[_[_0xc1bd('0x6f')](_0x561b04)+_0xc1bd('0x70')]):![];}}break;case _0xc1bd('0x71'):case _0xc1bd('0x72'):if(_0x241997[_0xc1bd('0x65')]===_0x561b04){return _0x241997['event']?operators[_0x52958e[_0xc1bd('0x6d')]](_0x52958e[_0xc1bd('0x6e')],_0x241997[_0xc1bd('0x73')]):![];}break;case _0xc1bd('0x5e'):return _0x241997[_0xc1bd('0x5e')]?operators[_0x52958e[_0xc1bd('0x6d')]](_0x52958e[_0xc1bd('0x6e')],_0x241997[_0xc1bd('0x5e')]):![];case _0xc1bd('0x74'):return _0x241997[_0xc1bd('0x75')]?operators[_0x52958e['operator']](_0x52958e[_0xc1bd('0x6e')],_0x241997[_0xc1bd('0x75')]):![];case _0xc1bd('0x76'):return _0x241997[_0xc1bd('0x76')]?operators[_0x52958e[_0xc1bd('0x6d')]](_0x52958e['value'],_0x241997['lastevent']):![];case _0xc1bd('0x5f'):return _0x241997[_0xc1bd('0x5f')]?operators[_0x52958e[_0xc1bd('0x6d')]](_0x52958e[_0xc1bd('0x6e')],_0x241997[_0xc1bd('0x5f')]):![];case _0xc1bd('0x77'):if(_0x52958e[_0xc1bd('0x6e')]==='null')_0x52958e[_0xc1bd('0x6e')]=null;return typeof _0x241997['substatus']!=='undefined'?operators[_0x52958e[_0xc1bd('0x6d')]](_0x52958e[_0xc1bd('0x6e')],_0x241997[_0xc1bd('0x78')]):![];case'offlineMessage':if(_0x241997['channel']===_0x561b04){return _0x52958e['value']===_0xc1bd('0x79')&&_0x52958e['operator']===_0xc1bd('0x7a')?!![]:![];}break;}return![];};};module[_0xc1bd('0x7b')]=Trigger;