Built motion from commit (unavailable).|2.4.21
[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 _0x8212=['clone','checkTriggers','agents','interface','hasOwnProperty','status','checkTrigger','merge','variables','Actions','action','toLowerCase','contactmanager','data1','TemplateId','data2','render','html','template\x20not\x20found','uri','buildUri','isNil','data3','data4','uriLocation','windowWidth','data5','windowHeight','data6','600','winapp','winArguments','format','user:%s','name','trigger:%s:%s','trigger:%s','exec','integration','voiceQueues','search','AllConditions','every','checkConditions','channel','AnyConditions','length','some','account','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','interaction','message','event','queue','agent','membername','lastevent','routeId','exports','util','lodash','mustache','ioredis','./urlforward','./integration','./cmContact','./script','../rpc/cmContact','../../../config/environment','trigger','redis','defaults','localhost','socket.io-emitter','popup','url','triggers','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','salesforceAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentcomplete','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:acceptmessage','custom:rejectmessage','prototype','emit','info','stringify'];(function(_0x23fae1,_0x258a16){var _0x453dd6=function(_0x3c8cf8){while(--_0x3c8cf8){_0x23fae1['push'](_0x23fae1['shift']());}};_0x453dd6(++_0x258a16);}(_0x8212,0xb3));var _0x2821=function(_0x286035,_0x28532d){_0x286035=_0x286035-0x0;var _0x15780b=_0x8212[_0x286035];return _0x15780b;};'use strict';var util=require(_0x2821('0x0'));var _=require(_0x2821('0x1'));var url=require('url');var Mustache=require(_0x2821('0x2'));var Redis=require(_0x2821('0x3'));var urlforward=require(_0x2821('0x4'));var integration=require(_0x2821('0x5'));var cmContact=require(_0x2821('0x6'));var script=require(_0x2821('0x7'));var cmContactRpc=require(_0x2821('0x8'));var config=require(_0x2821('0x9'));var logger=require('../../../config/logger')(_0x2821('0xa'));var ami=require('../ami');config[_0x2821('0xb')]=_[_0x2821('0xc')](config['redis'],{'host':_0x2821('0xd'),'port':0x18eb});var io=require(_0x2821('0xe'))(new Redis(config[_0x2821('0xb')]));var operators={'equals':function(_0x3ec8b3,_0x16003f){return _0x3ec8b3==_0x16003f;},'not_equals':function(_0x17d352,_0x258b64){return _0x17d352!=_0x258b64;}};var barAndWebActions=[_0x2821('0xf'),_0x2821('0x10'),'winapp'];function Trigger(_0x11a5fe){this[_0x2821('0x11')]=_0x11a5fe[_0x2821('0x11')];this['agents']=_0x11a5fe['agents'];this['voiceQueues']=_0x11a5fe['voiceQueues'];this[_0x2821('0x12')]=_0x11a5fe[_0x2821('0x12')];this[_0x2821('0x13')]=_0x11a5fe[_0x2821('0x13')];this[_0x2821('0x14')]=_0x11a5fe[_0x2821('0x14')];this['freshdeskAccounts']=_0x11a5fe[_0x2821('0x15')];this['salesforceAccounts']=_0x11a5fe['salesforceAccounts'];this[_0x2821('0x16')]=_0x11a5fe[_0x2821('0x16')];this[_0x2821('0x17')]=_0x11a5fe[_0x2821('0x17')];this['deskAccounts']=_0x11a5fe[_0x2821('0x18')];this['vtigerAccounts']=_0x11a5fe[_0x2821('0x19')];this[_0x2821('0x1a')]=_0x11a5fe[_0x2821('0x1a')];this[_0x2821('0x1b')]=_0x11a5fe[_0x2821('0x1b')];this[_0x2821('0x1c')]=_0x11a5fe[_0x2821('0x1c')];this[_0x2821('0x1d')]={'zendesk':this['zendeskAccounts'],'salesforce':this[_0x2821('0x1e')],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0x2821('0x16')],'zoho':this[_0x2821('0x17')],'desk':this[_0x2821('0x18')],'vtiger':this[_0x2821('0x19')],'dynamics365':this[_0x2821('0x1b')],'freshsales':this[_0x2821('0x1c')],'servicenow':this[_0x2821('0x1a')]};ami['on'](_0x2821('0x1f'),this[_0x2821('0x20')][_0x2821('0x21')](this));ami['on'](_0x2821('0x22'),this['syncCustomEvent']['bind'](this));ami['on'](_0x2821('0x23'),this[_0x2821('0x20')][_0x2821('0x21')](this));ami['on'](_0x2821('0x24'),this[_0x2821('0x20')][_0x2821('0x21')](this));ami['on'](_0x2821('0x25'),this[_0x2821('0x20')][_0x2821('0x21')](this));ami['on'](_0x2821('0x26'),this[_0x2821('0x20')][_0x2821('0x21')](this));ami['on'](_0x2821('0x27'),this[_0x2821('0x28')][_0x2821('0x21')](this));ami['on'](_0x2821('0x29'),this[_0x2821('0x28')][_0x2821('0x21')](this));ami['on'](_0x2821('0x2a'),this[_0x2821('0x28')]['bind'](this));ami['on'](_0x2821('0x2b'),this['syncCustomEvent'][_0x2821('0x21')](this));ami['on'](_0x2821('0x2c'),this[_0x2821('0x20')][_0x2821('0x21')](this));ami['on']('custom:incomingmessage',this[_0x2821('0x20')][_0x2821('0x21')](this));ami['on']('custom:outgoingmessage',this[_0x2821('0x20')][_0x2821('0x21')](this));ami['on'](_0x2821('0x2d'),this['syncCustomEvent'][_0x2821('0x21')](this));ami['on'](_0x2821('0x2e'),this[_0x2821('0x20')][_0x2821('0x21')](this));}Trigger[_0x2821('0x2f')][_0x2821('0x30')]=function(_0x4565f2,_0x4fd3b4,_0x427c0a){logger[_0x2821('0x31')](_0x4565f2,_0x4fd3b4,JSON[_0x2821('0x32')](_0x427c0a));io['to'](_0x4565f2)[_0x2821('0x30')](_0x4fd3b4,_0x427c0a);};Trigger[_0x2821('0x2f')][_0x2821('0x20')]=function(_0x1cb61a){var _0x2c3846=_[_0x2821('0x33')](_0x1cb61a);this[_0x2821('0x34')](_0x2c3846);};Trigger[_0x2821('0x2f')]['syncAgentDial']=function(_0x1880f6){if(this[_0x2821('0x35')][_0x1880f6[_0x2821('0x36')]]){this[_0x2821('0x20')](_0x1880f6);}};Trigger['prototype'][_0x2821('0x34')]=function(_0x3a0df7){var _0x29c13b;for(var _0x2af19b in this[_0x2821('0x11')]){if(this[_0x2821('0x11')][_0x2821('0x37')](_0x2af19b)){if(this[_0x2821('0x11')][_0x2af19b][_0x2821('0x38')]){_0x29c13b=this[_0x2821('0x39')](this['triggers'][_0x2af19b],_0x3a0df7);if(_0x29c13b){_[_0x2821('0x3a')](_0x3a0df7,_0x3a0df7[_0x2821('0x3b')]);for(var _0x36e868=0x0,_0x347d57,_0x357953,_0x492062;_0x36e868<this[_0x2821('0x11')][_0x2af19b]['Actions']['length'];_0x36e868+=0x1){_0x347d57=this[_0x2821('0x11')][_0x2af19b][_0x2821('0x3c')][_0x36e868];if(this[_0x2821('0x35')][_0x3a0df7[_0x2821('0x36')]]){switch(_0x347d57[_0x2821('0x3d')][_0x2821('0x3e')]()){case _0x2821('0x3f'):break;case'motionbar':case'browser':var _0x7594a5={};switch(barAndWebActions[_0x347d57[_0x2821('0x40')]]){case _0x2821('0xf'):_0x7594a5[_0x2821('0x41')]=_0x347d57[_0x2821('0x42')];_0x7594a5['html']=this['templates'][_0x347d57[_0x2821('0x42')]]?Mustache[_0x2821('0x43')](this[_0x2821('0x12')][_0x347d57[_0x2821('0x42')]][_0x2821('0x44')],_0x3a0df7):_0x2821('0x45');break;case'url':_0x7594a5[_0x2821('0x46')]=this[_0x2821('0x47')](_0x347d57['data2'],_0x3a0df7,_[_0x2821('0x48')](_0x347d57[_0x2821('0x49')])?!![]:parseInt(_0x347d57[_0x2821('0x49')],0xa));if(_[_0x2821('0x48')](_0x347d57[_0x2821('0x4a')])){_0x7594a5['location']='0';}else{_0x7594a5[_0x2821('0x4b')]=_0x347d57[_0x2821('0x4a')];_0x7594a5[_0x2821('0x4c')]=_[_0x2821('0x48')](_0x347d57['data5'])?'800':_0x347d57[_0x2821('0x4d')];_0x7594a5[_0x2821('0x4e')]=_[_0x2821('0x48')](_0x347d57[_0x2821('0x4f')])?_0x2821('0x50'):_0x347d57[_0x2821('0x4f')];}break;case _0x2821('0x51'):_0x7594a5['winApplication']=_0x347d57['data2']?Mustache[_0x2821('0x43')](_0x347d57['data2'],_0x3a0df7):'';_0x7594a5[_0x2821('0x52')]=_0x347d57[_0x2821('0x49')]?Mustache[_0x2821('0x43')](_0x347d57[_0x2821('0x49')],_0x3a0df7):'';break;}this[_0x2821('0x30')](util[_0x2821('0x53')](_0x2821('0x54'),this['agents'][_0x3a0df7[_0x2821('0x36')]][_0x2821('0x55')]),util[_0x2821('0x53')](_0x2821('0x56'),_0x347d57[_0x2821('0x3d')][_0x2821('0x3e')](),barAndWebActions[_0x347d57[_0x2821('0x40')]]),_[_0x2821('0x3a')](_0x7594a5,_0x3a0df7));break;case'jscripty':this[_0x2821('0x30')](util[_0x2821('0x53')](_0x2821('0x54'),this[_0x2821('0x35')][_0x3a0df7['interface']][_0x2821('0x55')]),util[_0x2821('0x53')](_0x2821('0x57'),_0x347d57['action']['toLowerCase']()),_['merge']({'ProjectId':parseInt(_0x347d57[_0x2821('0x40')],0xa)},_0x3a0df7));break;default:this[_0x2821('0x30')](util[_0x2821('0x53')]('user:%s',this[_0x2821('0x35')][_0x3a0df7[_0x2821('0x36')]][_0x2821('0x55')]),util[_0x2821('0x53')](_0x2821('0x57'),_0x347d57[_0x2821('0x3d')]['toLowerCase']()),_['merge']({},_0x347d57,_0x3a0df7));}}switch(_0x347d57[_0x2821('0x3d')][_0x2821('0x3e')]()){case'contactmanager':cmContact[_0x2821('0x58')](this[_0x2821('0x35')][_0x3a0df7[_0x2821('0x36')]],_0x347d57,_0x3a0df7,cmContactRpc);break;case _0x2821('0x59'):integration[_0x2821('0x58')](_0x347d57,_0x3a0df7,this[_0x2821('0x1d')],this[_0x2821('0x35')][_0x3a0df7[_0x2821('0x36')]],this[_0x2821('0x5a')][_0x3a0df7['queue']],this['voiceExtensions'][_0x3a0df7['routeId']]);break;case'urlforward':urlforward['exec'](_0x347d57,_0x3a0df7);break;case'script':script[_0x2821('0x58')](_0x347d57,_0x3a0df7);break;}}}}}}};Trigger[_0x2821('0x2f')][_0x2821('0x47')]=function(_0x26e7ca,_0x33ca29,_0xcd7b7a){var _0x436574=url['parse'](Mustache[_0x2821('0x43')](_0x26e7ca,_0x33ca29),!![]);if(_0xcd7b7a){_[_0x2821('0x3a')](_0x436574['query'],_0x33ca29);}delete _0x436574[_0x2821('0x5b')];var _0x13a508=url[_0x2821('0x53')](_0x436574);_0x13a508=_0x13a508['replace'](/\/\?/g,'?');return _0x13a508;};Trigger['prototype'][_0x2821('0x39')]=function(_0xc969df,_0x3a6069){var _0x32f593=!![],_0xea0e70=!![];if(_0xc969df[_0x2821('0x5c')]['length']){_0x32f593=_[_0x2821('0x5d')](_0xc969df[_0x2821('0x5c')],this[_0x2821('0x5e')](_0x3a6069,_0xc969df[_0x2821('0x5f')]));}if(_0xc969df[_0x2821('0x60')][_0x2821('0x61')]){_0xea0e70=_[_0x2821('0x62')](_0xc969df[_0x2821('0x60')],this[_0x2821('0x5e')](_0x3a6069,_0xc969df[_0x2821('0x5f')]));}return _0x32f593&&_0xea0e70;};Trigger[_0x2821('0x2f')]['checkConditions']=function(_0xf0702f,_0x1b2301){return function(_0x1c11b9){switch(_0x1c11b9['field']){case _0x2821('0x63'):if(_0xf0702f['channel']===_0x1b2301){if(_0x1b2301===_0x2821('0x64')){return _0xf0702f[_0x2821('0x65')]?operators[_0x1c11b9[_0x2821('0x66')]](Number(_0x1c11b9[_0x2821('0x67')]),_0xf0702f[_0x2821('0x65')]):![];}else{return _0xf0702f[_[_0x2821('0x68')](_0x1b2301)+'AccountId']?operators[_0x1c11b9[_0x2821('0x66')]](Number(_0x1c11b9[_0x2821('0x67')]),_0xf0702f[_[_0x2821('0x68')](_0x1b2301)+_0x2821('0x69')]):![];}}break;case _0x2821('0x6a'):case _0x2821('0x6b'):if(_0xf0702f['channel']===_0x1b2301){return _0xf0702f[_0x2821('0x6c')]?operators[_0x1c11b9[_0x2821('0x66')]](_0x1c11b9[_0x2821('0x67')],_0xf0702f['event']):![];}break;case _0x2821('0x6d'):return _0xf0702f[_0x2821('0x6d')]?operators[_0x1c11b9[_0x2821('0x66')]](_0x1c11b9[_0x2821('0x67')],_0xf0702f[_0x2821('0x6d')]):![];case _0x2821('0x6e'):return _0xf0702f[_0x2821('0x6f')]?operators[_0x1c11b9[_0x2821('0x66')]](_0x1c11b9['value'],_0xf0702f[_0x2821('0x6f')]):![];case _0x2821('0x70'):return _0xf0702f[_0x2821('0x70')]?operators[_0x1c11b9[_0x2821('0x66')]](_0x1c11b9[_0x2821('0x67')],_0xf0702f[_0x2821('0x70')]):![];case'routeId':return _0xf0702f['routeId']?operators[_0x1c11b9[_0x2821('0x66')]](_0x1c11b9[_0x2821('0x67')],_0xf0702f[_0x2821('0x71')]):![];}return![];};};module[_0x2821('0x72')]=Trigger;