Built motion from commit (unavailable).|2.5.26
[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 _0x8bd4=['stringify','clone','checkTriggers','interface','hasOwnProperty','status','checkTrigger','merge','variables','Actions','length','contactmanager','motionbar','browser','data1','TemplateId','html','data2','render','template\x20not\x20found','uri','buildUri','isNil','data3','data4','windowWidth','data5','windowHeight','data6','600','winApplication','winArguments','format','user:%s','name','trigger:%s:%s','action','jscripty','trigger:%s','toLowerCase','integration','exec','accounts','routeId','urlforward','script','query','search','every','AllConditions','checkConditions','channel','AnyConditions','some','account','ChatWebsiteId','operator','value','upperFirst','interaction','message','event','queue','agent','membername','lastevent','lodash','mustache','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','trigger','../ami','defaults','redis','localhost','popup','url','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','custom:agentcalled','bind','custom:agentconnect','syncCustomEvent','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:queuecallerabandon','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:incomingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','info'];(function(_0x21f577,_0x31b275){var _0xd342d5=function(_0x27988f){while(--_0x27988f){_0x21f577['push'](_0x21f577['shift']());}};_0xd342d5(++_0x31b275);}(_0x8bd4,0xb9));var _0x48bd=function(_0x38865a,_0x47fc4d){_0x38865a=_0x38865a-0x0;var _0x538fdc=_0x8bd4[_0x38865a];return _0x538fdc;};'use strict';var util=require('util');var _=require(_0x48bd('0x0'));var url=require('url');var Mustache=require(_0x48bd('0x1'));var Redis=require(_0x48bd('0x2'));var urlforward=require(_0x48bd('0x3'));var integration=require(_0x48bd('0x4'));var cmContact=require(_0x48bd('0x5'));var script=require(_0x48bd('0x6'));var config=require(_0x48bd('0x7'));var logger=require('../../../config/logger')(_0x48bd('0x8'));var ami=require(_0x48bd('0x9'));config['redis']=_[_0x48bd('0xa')](config[_0x48bd('0xb')],{'host':_0x48bd('0xc'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x48bd('0xb')]));var operators={'equals':function(_0x5d14aa,_0x979e80){return _0x5d14aa==_0x979e80;},'not_equals':function(_0x4dfeab,_0x5497a7){return _0x4dfeab!=_0x5497a7;}};var barAndWebActions=[_0x48bd('0xd'),_0x48bd('0xe'),_0x48bd('0xf')];function Trigger(_0x1ec816){this['triggers']=_0x1ec816[_0x48bd('0x10')];this['agents']=_0x1ec816[_0x48bd('0x11')];this[_0x48bd('0x12')]=_0x1ec816[_0x48bd('0x12')];this[_0x48bd('0x13')]=_0x1ec816[_0x48bd('0x13')];this[_0x48bd('0x14')]=_0x1ec816[_0x48bd('0x14')];this[_0x48bd('0x15')]=_0x1ec816['zendeskAccounts'];this[_0x48bd('0x16')]=_0x1ec816[_0x48bd('0x16')];this[_0x48bd('0x17')]=_0x1ec816[_0x48bd('0x17')];this['sugarcrmAccounts']=_0x1ec816[_0x48bd('0x18')];this[_0x48bd('0x19')]=_0x1ec816['zohoAccounts'];this[_0x48bd('0x1a')]=_0x1ec816[_0x48bd('0x1a')];this[_0x48bd('0x1b')]=_0x1ec816['vtigerAccounts'];this[_0x48bd('0x1c')]=_0x1ec816[_0x48bd('0x1c')];this[_0x48bd('0x1d')]=_0x1ec816[_0x48bd('0x1d')];this[_0x48bd('0x1e')]=_0x1ec816[_0x48bd('0x1e')];this['accounts']={'zendesk':this['zendeskAccounts'],'salesforce':this[_0x48bd('0x17')],'freshdesk':this[_0x48bd('0x16')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this['zohoAccounts'],'desk':this[_0x48bd('0x1a')],'vtiger':this[_0x48bd('0x1b')],'dynamics365':this[_0x48bd('0x1d')],'freshsales':this[_0x48bd('0x1e')],'servicenow':this['servicenowAccounts']};ami['on'](_0x48bd('0x1f'),this['syncCustomEvent'][_0x48bd('0x20')](this));ami['on'](_0x48bd('0x21'),this[_0x48bd('0x22')][_0x48bd('0x20')](this));ami['on'](_0x48bd('0x23'),this[_0x48bd('0x22')]['bind'](this));ami['on'](_0x48bd('0x24'),this['syncCustomEvent'][_0x48bd('0x20')](this));ami['on'](_0x48bd('0x25'),this[_0x48bd('0x22')]['bind'](this));ami['on']('custom:agentnoanswer',this[_0x48bd('0x22')][_0x48bd('0x20')](this));ami['on'](_0x48bd('0x26'),this[_0x48bd('0x22')][_0x48bd('0x20')](this));ami['on'](_0x48bd('0x27'),this['syncCustomEvent'][_0x48bd('0x20')](this));ami['on'](_0x48bd('0x28'),this['syncCustomEvent'][_0x48bd('0x20')](this));ami['on'](_0x48bd('0x29'),this['syncCustomEvent'][_0x48bd('0x20')](this));ami['on']('custom:timeout',this[_0x48bd('0x22')]['bind'](this));ami['on'](_0x48bd('0x2a'),this[_0x48bd('0x2b')][_0x48bd('0x20')](this));ami['on'](_0x48bd('0x2c'),this[_0x48bd('0x2b')][_0x48bd('0x20')](this));ami['on'](_0x48bd('0x2d'),this['syncAgentDial'][_0x48bd('0x20')](this));ami['on'](_0x48bd('0x2e'),this['syncCustomEvent'][_0x48bd('0x20')](this));ami['on']('custom:closedinteraction',this['syncCustomEvent'][_0x48bd('0x20')](this));ami['on'](_0x48bd('0x2f'),this[_0x48bd('0x22')][_0x48bd('0x20')](this));ami['on']('custom:outgoingmessage',this[_0x48bd('0x22')][_0x48bd('0x20')](this));ami['on'](_0x48bd('0x30'),this['syncCustomEvent'][_0x48bd('0x20')](this));ami['on'](_0x48bd('0x31'),this[_0x48bd('0x22')][_0x48bd('0x20')](this));}Trigger[_0x48bd('0x32')][_0x48bd('0x33')]=function(_0x2d5e2c,_0x201cf9,_0x4e37e2){logger[_0x48bd('0x34')](_0x2d5e2c,_0x201cf9,JSON[_0x48bd('0x35')](_0x4e37e2));io['to'](_0x2d5e2c)[_0x48bd('0x33')](_0x201cf9,_0x4e37e2);};Trigger[_0x48bd('0x32')][_0x48bd('0x22')]=function(_0x5d513e){var _0x517d98=_[_0x48bd('0x36')](_0x5d513e);this[_0x48bd('0x37')](_0x517d98);};Trigger[_0x48bd('0x32')][_0x48bd('0x2b')]=function(_0x1a2840){if(this[_0x48bd('0x11')][_0x1a2840[_0x48bd('0x38')]]){this[_0x48bd('0x22')](_0x1a2840);}};Trigger[_0x48bd('0x32')][_0x48bd('0x37')]=function(_0x38eb9a){var _0x11e958;for(var _0x192f18 in this['triggers']){if(this[_0x48bd('0x10')][_0x48bd('0x39')](_0x192f18)){if(this[_0x48bd('0x10')][_0x192f18][_0x48bd('0x3a')]){_0x11e958=this[_0x48bd('0x3b')](this[_0x48bd('0x10')][_0x192f18],_0x38eb9a);if(_0x11e958){_[_0x48bd('0x3c')](_0x38eb9a,_0x38eb9a[_0x48bd('0x3d')]);for(var _0x260927=0x0,_0x384df3,_0x423502,_0x27be9f;_0x260927<this[_0x48bd('0x10')][_0x192f18][_0x48bd('0x3e')][_0x48bd('0x3f')];_0x260927+=0x1){_0x384df3=this[_0x48bd('0x10')][_0x192f18][_0x48bd('0x3e')][_0x260927];if(this['agents'][_0x38eb9a[_0x48bd('0x38')]]){switch(_0x384df3['action']['toLowerCase']()){case _0x48bd('0x40'):break;case _0x48bd('0x41'):case _0x48bd('0x42'):var _0x3f2902={};switch(barAndWebActions[_0x384df3[_0x48bd('0x43')]]){case'popup':_0x3f2902[_0x48bd('0x44')]=_0x384df3['data2'];_0x3f2902[_0x48bd('0x45')]=this[_0x48bd('0x13')][_0x384df3[_0x48bd('0x46')]]?Mustache[_0x48bd('0x47')](this['templates'][_0x384df3[_0x48bd('0x46')]][_0x48bd('0x45')],_0x38eb9a):_0x48bd('0x48');break;case'url':_0x3f2902[_0x48bd('0x49')]=this[_0x48bd('0x4a')](_0x384df3[_0x48bd('0x46')],_0x38eb9a,_[_0x48bd('0x4b')](_0x384df3[_0x48bd('0x4c')])?!![]:parseInt(_0x384df3[_0x48bd('0x4c')],0xa));if(_['isNil'](_0x384df3[_0x48bd('0x4d')])){_0x3f2902['location']='0';}else{_0x3f2902['uriLocation']=_0x384df3[_0x48bd('0x4d')];_0x3f2902[_0x48bd('0x4e')]=_[_0x48bd('0x4b')](_0x384df3[_0x48bd('0x4f')])?'800':_0x384df3[_0x48bd('0x4f')];_0x3f2902[_0x48bd('0x50')]=_[_0x48bd('0x4b')](_0x384df3[_0x48bd('0x51')])?_0x48bd('0x52'):_0x384df3[_0x48bd('0x51')];}break;case'winapp':_0x3f2902[_0x48bd('0x53')]=_0x384df3[_0x48bd('0x46')]?Mustache[_0x48bd('0x47')](_0x384df3['data2'],_0x38eb9a):'';_0x3f2902[_0x48bd('0x54')]=_0x384df3['data3']?Mustache[_0x48bd('0x47')](_0x384df3[_0x48bd('0x4c')],_0x38eb9a):'';break;}this[_0x48bd('0x33')](util[_0x48bd('0x55')](_0x48bd('0x56'),this['agents'][_0x38eb9a[_0x48bd('0x38')]][_0x48bd('0x57')]),util[_0x48bd('0x55')](_0x48bd('0x58'),_0x384df3[_0x48bd('0x59')]['toLowerCase'](),barAndWebActions[_0x384df3[_0x48bd('0x43')]]),_[_0x48bd('0x3c')](_0x3f2902,_0x38eb9a));break;case _0x48bd('0x5a'):this[_0x48bd('0x33')](util['format'](_0x48bd('0x56'),this[_0x48bd('0x11')][_0x38eb9a['interface']][_0x48bd('0x57')]),util['format'](_0x48bd('0x5b'),_0x384df3['action'][_0x48bd('0x5c')]()),_[_0x48bd('0x3c')]({'ProjectId':parseInt(_0x384df3[_0x48bd('0x43')],0xa)},_0x38eb9a));break;default:this[_0x48bd('0x33')](util[_0x48bd('0x55')]('user:%s',this[_0x48bd('0x11')][_0x38eb9a[_0x48bd('0x38')]][_0x48bd('0x57')]),util[_0x48bd('0x55')](_0x48bd('0x5b'),_0x384df3['action'][_0x48bd('0x5c')]()),_[_0x48bd('0x3c')]({},_0x384df3,_0x38eb9a));}}switch(_0x384df3[_0x48bd('0x59')][_0x48bd('0x5c')]()){case _0x48bd('0x40'):cmContact['exec'](this[_0x48bd('0x11')][_0x38eb9a[_0x48bd('0x38')]],this[_0x48bd('0x10')][_0x192f18],_0x384df3,_0x38eb9a);break;case _0x48bd('0x5d'):integration[_0x48bd('0x5e')](_0x384df3,_0x38eb9a,this[_0x48bd('0x5f')],this['agents'][_0x38eb9a[_0x48bd('0x38')]],this[_0x48bd('0x12')][_0x38eb9a['queue']],this[_0x48bd('0x14')][_0x38eb9a[_0x48bd('0x60')]]);break;case _0x48bd('0x61'):urlforward[_0x48bd('0x5e')](_0x384df3,_0x38eb9a);break;case _0x48bd('0x62'):script['exec'](_0x384df3,_0x38eb9a);break;}}}}}}};Trigger['prototype']['buildUri']=function(_0x404f35,_0x47e21c,_0x199c34){var _0x48f927=url['parse'](Mustache[_0x48bd('0x47')](_0x404f35,_0x47e21c),!![]);if(_0x199c34){_[_0x48bd('0x3c')](_0x48f927[_0x48bd('0x63')],_0x47e21c);}delete _0x48f927[_0x48bd('0x64')];var _0xa71156=url[_0x48bd('0x55')](_0x48f927);_0xa71156=_0xa71156['replace'](/\/\?/g,'?');return _0xa71156;};Trigger[_0x48bd('0x32')][_0x48bd('0x3b')]=function(_0x41bd99,_0x279f18){var _0x252beb=!![],_0x45856c=!![];if(_0x41bd99['AllConditions'][_0x48bd('0x3f')]){_0x252beb=_[_0x48bd('0x65')](_0x41bd99[_0x48bd('0x66')],this[_0x48bd('0x67')](_0x279f18,_0x41bd99[_0x48bd('0x68')]));}if(_0x41bd99[_0x48bd('0x69')]['length']){_0x45856c=_[_0x48bd('0x6a')](_0x41bd99[_0x48bd('0x69')],this[_0x48bd('0x67')](_0x279f18,_0x41bd99[_0x48bd('0x68')]));}return _0x252beb&&_0x45856c;};Trigger[_0x48bd('0x32')]['checkConditions']=function(_0x54be0d,_0x270704){return function(_0x5a6aa0){switch(_0x5a6aa0['field']){case _0x48bd('0x6b'):if(_0x54be0d[_0x48bd('0x68')]===_0x270704){if(_0x270704==='chat'){return _0x54be0d[_0x48bd('0x6c')]?operators[_0x5a6aa0[_0x48bd('0x6d')]](Number(_0x5a6aa0[_0x48bd('0x6e')]),_0x54be0d[_0x48bd('0x6c')]):![];}else{return _0x54be0d[_[_0x48bd('0x6f')](_0x270704)+'AccountId']?operators[_0x5a6aa0['operator']](Number(_0x5a6aa0[_0x48bd('0x6e')]),_0x54be0d[_['upperFirst'](_0x270704)+'AccountId']):![];}}break;case _0x48bd('0x70'):case _0x48bd('0x71'):if(_0x54be0d['channel']===_0x270704){return _0x54be0d[_0x48bd('0x72')]?operators[_0x5a6aa0[_0x48bd('0x6d')]](_0x5a6aa0[_0x48bd('0x6e')],_0x54be0d[_0x48bd('0x72')]):![];}break;case _0x48bd('0x73'):return _0x54be0d[_0x48bd('0x73')]?operators[_0x5a6aa0[_0x48bd('0x6d')]](_0x5a6aa0['value'],_0x54be0d[_0x48bd('0x73')]):![];case _0x48bd('0x74'):return _0x54be0d[_0x48bd('0x75')]?operators[_0x5a6aa0['operator']](_0x5a6aa0['value'],_0x54be0d[_0x48bd('0x75')]):![];case _0x48bd('0x76'):return _0x54be0d[_0x48bd('0x76')]?operators[_0x5a6aa0[_0x48bd('0x6d')]](_0x5a6aa0[_0x48bd('0x6e')],_0x54be0d['lastevent']):![];case'routeId':return _0x54be0d[_0x48bd('0x60')]?operators[_0x5a6aa0[_0x48bd('0x6d')]](_0x5a6aa0[_0x48bd('0x6e')],_0x54be0d[_0x48bd('0x60')]):![];}return![];};};module['exports']=Trigger;