Built motion from commit 43538d75.|2.5.35
[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 _0xf186=['deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','custom:rejectmessage','prototype','emit','stringify','motionChannel','undefined','voice','checkTriggers','interface','hasOwnProperty','status','checkTrigger','merge','variables','Actions','action','contactmanager','motionbar','data1','popup','data2','render','html','template\x20not\x20found','uri','buildUri','isNil','data3','data4','uriLocation','data5','800','data6','winApplication','winArguments','format','name','trigger:%s:%s','toLowerCase','jscripty','user:%s','trigger:%s','integration','exec','routeId','script','parse','query','search','replace','channel','AllConditions','length','every','AnyConditions','some','checkConditions','field','account','chat','ChatWebsiteId','operator','upperFirst','AccountId','value','interaction','message','queue','agent','membername','lastevent','exports','util','lodash','url','mustache','./urlforward','./cmContact','./script','../../../config/environment','../../../config/logger','trigger','../ami','redis','localhost','socket.io-emitter','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts'];(function(_0x510736,_0x23f824){var _0x1ba97e=function(_0x5034f8){while(--_0x5034f8){_0x510736['push'](_0x510736['shift']());}};_0x1ba97e(++_0x23f824);}(_0xf186,0x161));var _0x6f18=function(_0xe5dce3,_0x259095){_0xe5dce3=_0xe5dce3-0x0;var _0x30494b=_0xf186[_0xe5dce3];return _0x30494b;};'use strict';var util=require(_0x6f18('0x0'));var _=require(_0x6f18('0x1'));var url=require(_0x6f18('0x2'));var Mustache=require(_0x6f18('0x3'));var Redis=require('ioredis');var urlforward=require(_0x6f18('0x4'));var integration=require('./integration');var cmContact=require(_0x6f18('0x5'));var script=require(_0x6f18('0x6'));var config=require(_0x6f18('0x7'));var logger=require(_0x6f18('0x8'))(_0x6f18('0x9'));var ami=require(_0x6f18('0xa'));config[_0x6f18('0xb')]=_['defaults'](config[_0x6f18('0xb')],{'host':_0x6f18('0xc'),'port':0x18eb});var io=require(_0x6f18('0xd'))(new Redis(config['redis']));var operators={'equals':function(_0x4c8215,_0xefd944){return _0x4c8215==_0xefd944;},'not_equals':function(_0x116852,_0x312163){return _0x116852!=_0x312163;}};var barAndWebActions=['popup',_0x6f18('0x2'),_0x6f18('0xe')];function Trigger(_0x49110b){this[_0x6f18('0xf')]=_0x49110b[_0x6f18('0xf')];this[_0x6f18('0x10')]=_0x49110b[_0x6f18('0x10')];this[_0x6f18('0x11')]=_0x49110b[_0x6f18('0x11')];this['templates']=_0x49110b[_0x6f18('0x12')];this[_0x6f18('0x13')]=_0x49110b[_0x6f18('0x13')];this[_0x6f18('0x14')]=_0x49110b[_0x6f18('0x14')];this[_0x6f18('0x15')]=_0x49110b[_0x6f18('0x15')];this[_0x6f18('0x16')]=_0x49110b[_0x6f18('0x16')];this[_0x6f18('0x17')]=_0x49110b['sugarcrmAccounts'];this[_0x6f18('0x18')]=_0x49110b[_0x6f18('0x18')];this[_0x6f18('0x19')]=_0x49110b[_0x6f18('0x19')];this[_0x6f18('0x1a')]=_0x49110b[_0x6f18('0x1a')];this['servicenowAccounts']=_0x49110b[_0x6f18('0x1b')];this['dynamics365Accounts']=_0x49110b[_0x6f18('0x1c')];this[_0x6f18('0x1d')]=_0x49110b[_0x6f18('0x1d')];this[_0x6f18('0x1e')]={'zendesk':this[_0x6f18('0x14')],'salesforce':this['salesforceAccounts'],'freshdesk':this[_0x6f18('0x15')],'sugarcrm':this['sugarcrmAccounts'],'zoho':this[_0x6f18('0x18')],'desk':this['deskAccounts'],'vtiger':this[_0x6f18('0x1a')],'dynamics365':this[_0x6f18('0x1c')],'freshsales':this[_0x6f18('0x1d')],'servicenow':this[_0x6f18('0x1b')]};ami['on'](_0x6f18('0x1f'),this[_0x6f18('0x20')][_0x6f18('0x21')](this));ami['on']('custom:agentconnect',this[_0x6f18('0x20')][_0x6f18('0x21')](this));ami['on'](_0x6f18('0x22'),this[_0x6f18('0x20')]['bind'](this));ami['on'](_0x6f18('0x23'),this[_0x6f18('0x20')][_0x6f18('0x21')](this));ami['on'](_0x6f18('0x24'),this[_0x6f18('0x20')][_0x6f18('0x21')](this));ami['on'](_0x6f18('0x25'),this[_0x6f18('0x20')][_0x6f18('0x21')](this));ami['on'](_0x6f18('0x26'),this[_0x6f18('0x20')][_0x6f18('0x21')](this));ami['on'](_0x6f18('0x27'),this[_0x6f18('0x20')][_0x6f18('0x21')](this));ami['on'](_0x6f18('0x28'),this['syncCustomEvent'][_0x6f18('0x21')](this));ami['on'](_0x6f18('0x29'),this[_0x6f18('0x20')]['bind'](this));ami['on'](_0x6f18('0x2a'),this[_0x6f18('0x20')][_0x6f18('0x21')](this));ami['on'](_0x6f18('0x2b'),this[_0x6f18('0x20')][_0x6f18('0x21')](this));ami['on'](_0x6f18('0x2c'),this[_0x6f18('0x2d')][_0x6f18('0x21')](this));ami['on'](_0x6f18('0x2e'),this[_0x6f18('0x2d')][_0x6f18('0x21')](this));ami['on'](_0x6f18('0x2f'),this['syncAgentDial'][_0x6f18('0x21')](this));ami['on'](_0x6f18('0x30'),this['syncCustomEvent'][_0x6f18('0x21')](this));ami['on'](_0x6f18('0x31'),this[_0x6f18('0x20')]['bind'](this));ami['on'](_0x6f18('0x32'),this[_0x6f18('0x20')][_0x6f18('0x21')](this));ami['on'](_0x6f18('0x33'),this[_0x6f18('0x20')][_0x6f18('0x21')](this));ami['on'](_0x6f18('0x34'),this[_0x6f18('0x20')][_0x6f18('0x21')](this));ami['on'](_0x6f18('0x35'),this[_0x6f18('0x20')][_0x6f18('0x21')](this));ami['on'](_0x6f18('0x36'),this['syncCustomEvent'][_0x6f18('0x21')](this));}Trigger[_0x6f18('0x37')][_0x6f18('0x38')]=function(_0x5c8eea,_0x3c8042,_0x4639be){logger['info'](_0x5c8eea,_0x3c8042,JSON[_0x6f18('0x39')](_0x4639be));io['to'](_0x5c8eea)[_0x6f18('0x38')](_0x3c8042,_0x4639be);};Trigger[_0x6f18('0x37')][_0x6f18('0x20')]=function(_0x57eeda){var _0x64af9e=_['clone'](_0x57eeda);if(typeof _0x64af9e[_0x6f18('0x3a')]===_0x6f18('0x3b')){_0x64af9e[_0x6f18('0x3a')]=_0x6f18('0x3c');}this[_0x6f18('0x3d')](_0x64af9e);};Trigger[_0x6f18('0x37')]['syncAgentDial']=function(_0x1e238f){if(this[_0x6f18('0x10')][_0x1e238f[_0x6f18('0x3e')]]){this[_0x6f18('0x20')](_0x1e238f);}};Trigger['prototype'][_0x6f18('0x3d')]=function(_0x8a1712){var _0x5dd190;for(var _0x5339ba in this[_0x6f18('0xf')]){if(this[_0x6f18('0xf')][_0x6f18('0x3f')](_0x5339ba)){if(this['triggers'][_0x5339ba][_0x6f18('0x40')]){_0x5dd190=this[_0x6f18('0x41')](this[_0x6f18('0xf')][_0x5339ba],_0x8a1712);if(_0x5dd190){_[_0x6f18('0x42')](_0x8a1712,_0x8a1712[_0x6f18('0x43')]);for(var _0x470a31=0x0,_0x52293a,_0x53f5fb,_0x255bc4;_0x470a31<this['triggers'][_0x5339ba]['Actions']['length'];_0x470a31+=0x1){_0x52293a=this[_0x6f18('0xf')][_0x5339ba][_0x6f18('0x44')][_0x470a31];if(this[_0x6f18('0x10')][_0x8a1712['interface']]){switch(_0x52293a[_0x6f18('0x45')]['toLowerCase']()){case _0x6f18('0x46'):break;case _0x6f18('0x47'):case'browser':var _0x48e4c3={};switch(barAndWebActions[_0x52293a[_0x6f18('0x48')]]){case _0x6f18('0x49'):_0x48e4c3['TemplateId']=_0x52293a[_0x6f18('0x4a')];_0x48e4c3['html']=this[_0x6f18('0x12')][_0x52293a[_0x6f18('0x4a')]]?Mustache[_0x6f18('0x4b')](this[_0x6f18('0x12')][_0x52293a[_0x6f18('0x4a')]][_0x6f18('0x4c')],_0x8a1712):_0x6f18('0x4d');break;case _0x6f18('0x2'):_0x48e4c3[_0x6f18('0x4e')]=this[_0x6f18('0x4f')](_0x52293a[_0x6f18('0x4a')],_0x8a1712,_[_0x6f18('0x50')](_0x52293a['data3'])?!![]:parseInt(_0x52293a[_0x6f18('0x51')],0xa));if(_['isNil'](_0x52293a[_0x6f18('0x52')])){_0x48e4c3['location']='0';}else{_0x48e4c3[_0x6f18('0x53')]=_0x52293a[_0x6f18('0x52')];_0x48e4c3['windowWidth']=_[_0x6f18('0x50')](_0x52293a[_0x6f18('0x54')])?_0x6f18('0x55'):_0x52293a[_0x6f18('0x54')];_0x48e4c3['windowHeight']=_['isNil'](_0x52293a[_0x6f18('0x56')])?'600':_0x52293a['data6'];}break;case _0x6f18('0xe'):_0x48e4c3[_0x6f18('0x57')]=_0x52293a['data2']?Mustache['render'](_0x52293a[_0x6f18('0x4a')],_0x8a1712):'';_0x48e4c3[_0x6f18('0x58')]=_0x52293a[_0x6f18('0x51')]?Mustache[_0x6f18('0x4b')](_0x52293a[_0x6f18('0x51')],_0x8a1712):'';break;}this['emit'](util[_0x6f18('0x59')]('user:%s',this[_0x6f18('0x10')][_0x8a1712[_0x6f18('0x3e')]][_0x6f18('0x5a')]),util[_0x6f18('0x59')](_0x6f18('0x5b'),_0x52293a[_0x6f18('0x45')][_0x6f18('0x5c')](),barAndWebActions[_0x52293a[_0x6f18('0x48')]]),_[_0x6f18('0x42')](_0x48e4c3,_0x8a1712));break;case _0x6f18('0x5d'):this[_0x6f18('0x38')](util[_0x6f18('0x59')](_0x6f18('0x5e'),this[_0x6f18('0x10')][_0x8a1712[_0x6f18('0x3e')]][_0x6f18('0x5a')]),util[_0x6f18('0x59')](_0x6f18('0x5f'),_0x52293a[_0x6f18('0x45')][_0x6f18('0x5c')]()),_[_0x6f18('0x42')]({'ProjectId':parseInt(_0x52293a[_0x6f18('0x48')],0xa)},_0x8a1712));break;default:this[_0x6f18('0x38')](util['format']('user:%s',this[_0x6f18('0x10')][_0x8a1712['interface']][_0x6f18('0x5a')]),util[_0x6f18('0x59')]('trigger:%s',_0x52293a[_0x6f18('0x45')][_0x6f18('0x5c')]()),_[_0x6f18('0x42')]({},_0x52293a,_0x8a1712));}}switch(_0x52293a[_0x6f18('0x45')]['toLowerCase']()){case _0x6f18('0x46'):cmContact['exec'](this[_0x6f18('0x10')][_0x8a1712[_0x6f18('0x3e')]],this[_0x6f18('0xf')][_0x5339ba],_0x52293a,_0x8a1712);break;case _0x6f18('0x60'):integration[_0x6f18('0x61')](_0x52293a,_0x8a1712,this[_0x6f18('0x1e')],this['agents'][_0x8a1712['interface']],this[_0x6f18('0x11')][_0x8a1712['queue']],this['voiceExtensions'][_0x8a1712[_0x6f18('0x62')]]);break;case'urlforward':urlforward[_0x6f18('0x61')](_0x52293a,_0x8a1712);break;case _0x6f18('0x63'):script[_0x6f18('0x61')](_0x52293a,_0x8a1712);break;}}}}}}};Trigger[_0x6f18('0x37')][_0x6f18('0x4f')]=function(_0x22b716,_0x1a82cf,_0x547d20){var _0x2f585f=url[_0x6f18('0x64')](Mustache['render'](_0x22b716,_0x1a82cf),!![]);if(_0x547d20){_[_0x6f18('0x42')](_0x2f585f[_0x6f18('0x65')],_0x1a82cf);}delete _0x2f585f[_0x6f18('0x66')];var _0x4786e3=url[_0x6f18('0x59')](_0x2f585f);_0x4786e3=_0x4786e3[_0x6f18('0x67')](/\/\?/g,'?');return _0x4786e3;};Trigger[_0x6f18('0x37')]['checkTrigger']=function(_0x4d0461,_0x32f7ba){var _0x535c01=!![];var _0x1a91a5=!![];var _0x2ca06d=![];if(_0x4d0461[_0x6f18('0x68')]===_0x32f7ba[_0x6f18('0x3a')]){_0x2ca06d=!![];}if(_0x4d0461[_0x6f18('0x69')][_0x6f18('0x6a')]){_0x535c01=_[_0x6f18('0x6b')](_0x4d0461[_0x6f18('0x69')],this['checkConditions'](_0x32f7ba,_0x4d0461[_0x6f18('0x68')]));}if(_0x4d0461[_0x6f18('0x6c')][_0x6f18('0x6a')]){_0x1a91a5=_[_0x6f18('0x6d')](_0x4d0461[_0x6f18('0x6c')],this[_0x6f18('0x6e')](_0x32f7ba,_0x4d0461[_0x6f18('0x68')]));}return _0x2ca06d&&_0x535c01&&_0x1a91a5;};Trigger[_0x6f18('0x37')][_0x6f18('0x6e')]=function(_0x2d0d96,_0x5136d8){return function(_0x52c8db){switch(_0x52c8db[_0x6f18('0x6f')]){case _0x6f18('0x70'):if(_0x2d0d96['channel']===_0x5136d8){if(_0x5136d8===_0x6f18('0x71')){return _0x2d0d96[_0x6f18('0x72')]?operators[_0x52c8db[_0x6f18('0x73')]](Number(_0x52c8db['value']),_0x2d0d96[_0x6f18('0x72')]):![];}else{return _0x2d0d96[_[_0x6f18('0x74')](_0x5136d8)+_0x6f18('0x75')]?operators[_0x52c8db[_0x6f18('0x73')]](Number(_0x52c8db[_0x6f18('0x76')]),_0x2d0d96[_[_0x6f18('0x74')](_0x5136d8)+_0x6f18('0x75')]):![];}}break;case _0x6f18('0x77'):case _0x6f18('0x78'):if(_0x2d0d96['channel']===_0x5136d8){return _0x2d0d96['event']?operators[_0x52c8db['operator']](_0x52c8db[_0x6f18('0x76')],_0x2d0d96['event']):![];}break;case _0x6f18('0x79'):return _0x2d0d96[_0x6f18('0x79')]?operators[_0x52c8db[_0x6f18('0x73')]](_0x52c8db[_0x6f18('0x76')],_0x2d0d96['queue']):![];case _0x6f18('0x7a'):return _0x2d0d96['membername']?operators[_0x52c8db[_0x6f18('0x73')]](_0x52c8db[_0x6f18('0x76')],_0x2d0d96[_0x6f18('0x7b')]):![];case _0x6f18('0x7c'):return _0x2d0d96[_0x6f18('0x7c')]?operators[_0x52c8db[_0x6f18('0x73')]](_0x52c8db['value'],_0x2d0d96['lastevent']):![];case _0x6f18('0x62'):return _0x2d0d96[_0x6f18('0x62')]?operators[_0x52c8db[_0x6f18('0x73')]](_0x52c8db[_0x6f18('0x76')],_0x2d0d96['routeId']):![];}return![];};};module[_0x6f18('0x7d')]=Trigger;