Built motion from commit d1eab355.|2.6.28
[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 _0x30cd=['dynamics365Accounts','freshsalesAccounts','accounts','syncCustomEvent','custom:agentconnect','bind','custom:agentringnoanswer','custom:agentbusy','custom:agentreject','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:offlineMessage','prototype','emit','info','stringify','clone','undefined','motionChannel','voice','debug','inspect','checkTriggers','interface','hasOwnProperty','checkTrigger','length','Actions','action','contactmanager','motionbar','browser','data1','TemplateId','html','data2','render','uri','buildUri','data3','isNil','location','uriLocation','data4','data5','800','windowHeight','data6','winApplication','winArguments','user:%s','name','format','trigger:%s:%s','toLowerCase','merge','jscripty','trigger:%s','exec','integration','queue','routeId','urlforward','script','parse','query','search','channel','AllConditions','every','checkConditions','AnyConditions','some','checkTrigger:\x20trigger','evt','field','account','ChatWebsiteId','upperFirst','AccountId','value','interaction','message','event','operator','agent','membername','lastevent','substatus','offlineMessage','created','exports','util','lodash','url','ioredis','./urlforward','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','localhost','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts'];(function(_0x5e9209,_0x14aa9a){var _0x4e8108=function(_0x256f40){while(--_0x256f40){_0x5e9209['push'](_0x5e9209['shift']());}};_0x4e8108(++_0x14aa9a);}(_0x30cd,0x1e3));var _0xd30c=function(_0xe98cc9,_0x2974e6){_0xe98cc9=_0xe98cc9-0x0;var _0xce87e5=_0x30cd[_0xe98cc9];return _0xce87e5;};'use strict';var util=require(_0xd30c('0x0'));var _=require(_0xd30c('0x1'));var url=require(_0xd30c('0x2'));var Mustache=require('mustache');var Redis=require(_0xd30c('0x3'));var urlforward=require(_0xd30c('0x4'));var integration=require('./integration');var cmContact=require(_0xd30c('0x5'));var script=require(_0xd30c('0x6'));var config=require(_0xd30c('0x7'));var logger=require(_0xd30c('0x8'))(_0xd30c('0x9'));var ami=require(_0xd30c('0xa'));config[_0xd30c('0xb')]=_['defaults'](config[_0xd30c('0xb')],{'host':_0xd30c('0xc'),'port':0x18eb});var io=require(_0xd30c('0xd'))(new Redis(config[_0xd30c('0xb')]));var operators={'equals':function(_0x44af2e,_0x1d2d98){return _0x44af2e==_0x1d2d98;},'not_equals':function(_0x23aef6,_0x39d619){return _0x23aef6!=_0x39d619;}};var barAndWebActions=[_0xd30c('0xe'),_0xd30c('0x2'),_0xd30c('0xf')];function Trigger(_0x53fc7f){this['triggers']=_0x53fc7f[_0xd30c('0x10')];this[_0xd30c('0x11')]=_0x53fc7f['agents'];this[_0xd30c('0x12')]=_0x53fc7f['voiceQueues'];this['templates']=_0x53fc7f[_0xd30c('0x13')];this[_0xd30c('0x14')]=_0x53fc7f['voiceExtensions'];this[_0xd30c('0x15')]=_0x53fc7f['zendeskAccounts'];this[_0xd30c('0x16')]=_0x53fc7f[_0xd30c('0x16')];this[_0xd30c('0x17')]=_0x53fc7f[_0xd30c('0x17')];this[_0xd30c('0x18')]=_0x53fc7f[_0xd30c('0x18')];this[_0xd30c('0x19')]=_0x53fc7f[_0xd30c('0x19')];this[_0xd30c('0x1a')]=_0x53fc7f[_0xd30c('0x1a')];this[_0xd30c('0x1b')]=_0x53fc7f[_0xd30c('0x1b')];this[_0xd30c('0x1c')]=_0x53fc7f[_0xd30c('0x1c')];this['dynamics365Accounts']=_0x53fc7f[_0xd30c('0x1d')];this[_0xd30c('0x1e')]=_0x53fc7f[_0xd30c('0x1e')];this[_0xd30c('0x1f')]={'zendesk':this[_0xd30c('0x15')],'salesforce':this[_0xd30c('0x17')],'freshdesk':this[_0xd30c('0x16')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this[_0xd30c('0x19')],'desk':this[_0xd30c('0x1a')],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0xd30c('0x1d')],'freshsales':this[_0xd30c('0x1e')],'servicenow':this[_0xd30c('0x1c')]};ami['on']('custom:agentcalled',this[_0xd30c('0x20')]['bind'](this));ami['on'](_0xd30c('0x21'),this[_0xd30c('0x20')][_0xd30c('0x22')](this));ami['on'](_0xd30c('0x23'),this[_0xd30c('0x20')]['bind'](this));ami['on']('custom:agentcomplete',this[_0xd30c('0x20')][_0xd30c('0x22')](this));ami['on']('custom:agentnosuchnumber',this[_0xd30c('0x20')]['bind'](this));ami['on']('custom:agentnoanswer',this[_0xd30c('0x20')][_0xd30c('0x22')](this));ami['on'](_0xd30c('0x24'),this['syncCustomEvent'][_0xd30c('0x22')](this));ami['on']('custom:agentcongestion',this['syncCustomEvent'][_0xd30c('0x22')](this));ami['on'](_0xd30c('0x25'),this[_0xd30c('0x20')][_0xd30c('0x22')](this));ami['on']('custom:amd',this[_0xd30c('0x20')]['bind'](this));ami['on']('custom:queuecallerabandon',this[_0xd30c('0x20')][_0xd30c('0x22')](this));ami['on']('custom:timeout',this['syncCustomEvent']['bind'](this));ami['on'](_0xd30c('0x26'),this[_0xd30c('0x27')]['bind'](this));ami['on'](_0xd30c('0x28'),this[_0xd30c('0x27')][_0xd30c('0x22')](this));ami['on']('custom:dialend',this[_0xd30c('0x27')]['bind'](this));ami['on'](_0xd30c('0x29'),this[_0xd30c('0x20')][_0xd30c('0x22')](this));ami['on'](_0xd30c('0x2a'),this['syncCustomEvent'][_0xd30c('0x22')](this));ami['on'](_0xd30c('0x2b'),this['syncCustomEvent'][_0xd30c('0x22')](this));ami['on'](_0xd30c('0x2c'),this[_0xd30c('0x20')][_0xd30c('0x22')](this));ami['on'](_0xd30c('0x2d'),this['syncCustomEvent'][_0xd30c('0x22')](this));ami['on'](_0xd30c('0x2e'),this['syncCustomEvent']['bind'](this));ami['on']('custom:rejectmessage',this[_0xd30c('0x20')]['bind'](this));ami['on'](_0xd30c('0x2f'),this[_0xd30c('0x20')][_0xd30c('0x22')](this));}Trigger[_0xd30c('0x30')][_0xd30c('0x31')]=function(_0x24c907,_0x199cb3,_0x4fca35){logger[_0xd30c('0x32')](_0x24c907,_0x199cb3,JSON[_0xd30c('0x33')](_0x4fca35));io['to'](_0x24c907)['emit'](_0x199cb3,_0x4fca35);};Trigger[_0xd30c('0x30')][_0xd30c('0x20')]=function(_0x21fc41){var _0x447597=_[_0xd30c('0x34')](_0x21fc41);if(typeof _0x447597['motionChannel']===_0xd30c('0x35')){_0x447597[_0xd30c('0x36')]=_0xd30c('0x37');}logger[_0xd30c('0x38')]('syncCustomEvent',util[_0xd30c('0x39')](_0x447597,{'showHidden':!![],'depth':null}));this[_0xd30c('0x3a')](_0x447597);};Trigger[_0xd30c('0x30')]['syncAgentDial']=function(_0x331a90){if(this[_0xd30c('0x11')][_0x331a90[_0xd30c('0x3b')]]){this[_0xd30c('0x20')](_0x331a90);}};Trigger[_0xd30c('0x30')]['checkTriggers']=function(_0x39286c){var _0x5c02fd;for(var _0x2cecad in this[_0xd30c('0x10')]){if(this[_0xd30c('0x10')][_0xd30c('0x3c')](_0x2cecad)){if(this[_0xd30c('0x10')][_0x2cecad]['status']){_0x5c02fd=this[_0xd30c('0x3d')](this[_0xd30c('0x10')][_0x2cecad],_0x39286c);if(_0x5c02fd){_['merge'](_0x39286c,_0x39286c['variables']);for(var _0x47e3c3=0x0,_0x204411,_0xb2c67a,_0x4b87ad;_0x47e3c3<this['triggers'][_0x2cecad]['Actions'][_0xd30c('0x3e')];_0x47e3c3+=0x1){_0x204411=this[_0xd30c('0x10')][_0x2cecad][_0xd30c('0x3f')][_0x47e3c3];if(this[_0xd30c('0x11')][_0x39286c[_0xd30c('0x3b')]]){switch(_0x204411[_0xd30c('0x40')]['toLowerCase']()){case _0xd30c('0x41'):break;case _0xd30c('0x42'):case _0xd30c('0x43'):var _0x173560={};switch(barAndWebActions[_0x204411[_0xd30c('0x44')]]){case'popup':_0x173560[_0xd30c('0x45')]=_0x204411['data2'];_0x173560[_0xd30c('0x46')]=this[_0xd30c('0x13')][_0x204411[_0xd30c('0x47')]]?Mustache[_0xd30c('0x48')](this[_0xd30c('0x13')][_0x204411[_0xd30c('0x47')]]['html'],_0x39286c):'template\x20not\x20found';break;case _0xd30c('0x2'):_0x173560[_0xd30c('0x49')]=this[_0xd30c('0x4a')](_0x204411[_0xd30c('0x47')],_0x39286c,_['isNil'](_0x204411[_0xd30c('0x4b')])?!![]:parseInt(_0x204411[_0xd30c('0x4b')],0xa));if(_[_0xd30c('0x4c')](_0x204411['data4'])){_0x173560[_0xd30c('0x4d')]='0';}else{_0x173560[_0xd30c('0x4e')]=_0x204411[_0xd30c('0x4f')];_0x173560['windowWidth']=_[_0xd30c('0x4c')](_0x204411[_0xd30c('0x50')])?_0xd30c('0x51'):_0x204411[_0xd30c('0x50')];_0x173560[_0xd30c('0x52')]=_[_0xd30c('0x4c')](_0x204411[_0xd30c('0x53')])?'600':_0x204411[_0xd30c('0x53')];}break;case _0xd30c('0xf'):_0x173560[_0xd30c('0x54')]=_0x204411[_0xd30c('0x47')]?Mustache['render'](_0x204411['data2'],_0x39286c):'';_0x173560[_0xd30c('0x55')]=_0x204411[_0xd30c('0x4b')]?Mustache['render'](_0x204411[_0xd30c('0x4b')],_0x39286c):'';break;}this['emit'](util['format'](_0xd30c('0x56'),this[_0xd30c('0x11')][_0x39286c['interface']][_0xd30c('0x57')]),util[_0xd30c('0x58')](_0xd30c('0x59'),_0x204411['action'][_0xd30c('0x5a')](),barAndWebActions[_0x204411[_0xd30c('0x44')]]),_[_0xd30c('0x5b')](_0x173560,_0x39286c));break;case _0xd30c('0x5c'):this[_0xd30c('0x31')](util[_0xd30c('0x58')](_0xd30c('0x56'),this[_0xd30c('0x11')][_0x39286c[_0xd30c('0x3b')]][_0xd30c('0x57')]),util['format'](_0xd30c('0x5d'),_0x204411['action'][_0xd30c('0x5a')]()),_['merge']({'ProjectId':parseInt(_0x204411[_0xd30c('0x44')],0xa)},_0x39286c));break;default:this[_0xd30c('0x31')](util[_0xd30c('0x58')](_0xd30c('0x56'),this[_0xd30c('0x11')][_0x39286c[_0xd30c('0x3b')]][_0xd30c('0x57')]),util[_0xd30c('0x58')](_0xd30c('0x5d'),_0x204411[_0xd30c('0x40')][_0xd30c('0x5a')]()),_[_0xd30c('0x5b')]({},_0x204411,_0x39286c));}}switch(_0x204411['action'][_0xd30c('0x5a')]()){case _0xd30c('0x41'):cmContact[_0xd30c('0x5e')](this[_0xd30c('0x11')][_0x39286c[_0xd30c('0x3b')]],this['triggers'][_0x2cecad],_0x204411,_0x39286c);break;case _0xd30c('0x5f'):integration[_0xd30c('0x5e')](_0x204411,_0x39286c,this[_0xd30c('0x1f')],this[_0xd30c('0x11')][_0x39286c[_0xd30c('0x3b')]],this[_0xd30c('0x12')][_0x39286c[_0xd30c('0x60')]],this['voiceExtensions'][_0x39286c[_0xd30c('0x61')]]);break;case _0xd30c('0x62'):urlforward[_0xd30c('0x5e')](_0x204411,_0x39286c);break;case _0xd30c('0x63'):script[_0xd30c('0x5e')](_0x204411,_0x39286c);break;}}}}}}};Trigger[_0xd30c('0x30')]['buildUri']=function(_0x432b29,_0x309240,_0x21bab2){var _0x5ed256=url[_0xd30c('0x64')](Mustache['render'](_0x432b29,_0x309240),!![]);if(_0x21bab2){_[_0xd30c('0x5b')](_0x5ed256[_0xd30c('0x65')],_0x309240);}delete _0x5ed256[_0xd30c('0x66')];var _0x4e6b02=url['format'](_0x5ed256);_0x4e6b02=_0x4e6b02['replace'](/\/\?/g,'?');return _0x4e6b02;};Trigger[_0xd30c('0x30')][_0xd30c('0x3d')]=function(_0x206c5a,_0x496d90){var _0x55b1a1=!![];var _0x66ddea=!![];var _0x397bda=![];if(_0x206c5a[_0xd30c('0x67')]===_0x496d90['motionChannel']){_0x397bda=!![];}if(_0x206c5a[_0xd30c('0x68')][_0xd30c('0x3e')]){_0x55b1a1=_[_0xd30c('0x69')](_0x206c5a[_0xd30c('0x68')],this[_0xd30c('0x6a')](_0x496d90,_0x206c5a[_0xd30c('0x67')]));}if(_0x206c5a[_0xd30c('0x6b')][_0xd30c('0x3e')]){_0x66ddea=_[_0xd30c('0x6c')](_0x206c5a[_0xd30c('0x6b')],this[_0xd30c('0x6a')](_0x496d90,_0x206c5a[_0xd30c('0x67')]));}var _0x3c5ad1=_0x397bda&&_0x55b1a1&&_0x66ddea;logger[_0xd30c('0x38')](_0xd30c('0x6d'),util['inspect'](_0x206c5a,{'showHidden':!![],'depth':null}),_0xd30c('0x6e'),util['inspect'](_0x496d90,{'showHidden':!![],'depth':null}),_0x397bda,_0x55b1a1,_0x66ddea);return _0x3c5ad1;};Trigger[_0xd30c('0x30')][_0xd30c('0x6a')]=function(_0x47cee0,_0x4e91cd){return function(_0x2ea401){switch(_0x2ea401[_0xd30c('0x6f')]){case _0xd30c('0x70'):if(_0x47cee0['channel']===_0x4e91cd){if(_0x4e91cd==='chat'){return _0x47cee0[_0xd30c('0x71')]?operators[_0x2ea401['operator']](Number(_0x2ea401['value']),_0x47cee0['ChatWebsiteId']):![];}else{return _0x47cee0[_[_0xd30c('0x72')](_0x4e91cd)+_0xd30c('0x73')]?operators[_0x2ea401['operator']](Number(_0x2ea401[_0xd30c('0x74')]),_0x47cee0[_[_0xd30c('0x72')](_0x4e91cd)+_0xd30c('0x73')]):![];}}break;case _0xd30c('0x75'):case _0xd30c('0x76'):if(_0x47cee0[_0xd30c('0x67')]===_0x4e91cd){return _0x47cee0[_0xd30c('0x77')]?operators[_0x2ea401[_0xd30c('0x78')]](_0x2ea401[_0xd30c('0x74')],_0x47cee0[_0xd30c('0x77')]):![];}break;case _0xd30c('0x60'):return _0x47cee0[_0xd30c('0x60')]?operators[_0x2ea401[_0xd30c('0x78')]](_0x2ea401['value'],_0x47cee0[_0xd30c('0x60')]):![];case _0xd30c('0x79'):return _0x47cee0[_0xd30c('0x7a')]?operators[_0x2ea401[_0xd30c('0x78')]](_0x2ea401[_0xd30c('0x74')],_0x47cee0[_0xd30c('0x7a')]):![];case _0xd30c('0x7b'):return _0x47cee0[_0xd30c('0x7b')]?operators[_0x2ea401[_0xd30c('0x78')]](_0x2ea401[_0xd30c('0x74')],_0x47cee0[_0xd30c('0x7b')]):![];case _0xd30c('0x61'):return _0x47cee0[_0xd30c('0x61')]?operators[_0x2ea401['operator']](_0x2ea401[_0xd30c('0x74')],_0x47cee0['routeId']):![];case'mailSubstatus':if(_0x2ea401[_0xd30c('0x74')]==='null')_0x2ea401[_0xd30c('0x74')]=null;return typeof _0x47cee0[_0xd30c('0x7c')]!==_0xd30c('0x35')?operators[_0x2ea401['operator']](_0x2ea401[_0xd30c('0x74')],_0x47cee0[_0xd30c('0x7c')]):![];case _0xd30c('0x7d'):if(_0x47cee0['channel']===_0x4e91cd){return _0x2ea401[_0xd30c('0x74')]===_0xd30c('0x7e')&&_0x2ea401[_0xd30c('0x78')]==='equals'?!![]:![];}break;}return![];};};module[_0xd30c('0x7f')]=Trigger;