f1f3c76f16d435b2fbeaceb2a6834ac826ebd566
[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 _0x5f7b=['600','data6','winApplication','winArguments','emit','format','name','trigger:%s:%s','action','jscripty','user:%s','trigger:%s','exec','integration','queue','routeId','urlforward','script','parse','query','search','replace','AllConditions','every','checkConditions','channel','AnyConditions','field','chat','ChatWebsiteId','value','upperFirst','event','operator','membername','lastevent','util','lodash','url','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/environment','../../../config/logger','../ami','redis','defaults','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','accounts','zendeskAccounts','custom:agentcalled','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentnoanswer','custom:agentbusy','custom:agentreject','custom:queuecallerabandon','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:incomingmessage','custom:outgoingmessage','custom:acceptmessage','prototype','stringify','checkTriggers','checkTrigger','merge','variables','Actions','length','interface','toLowerCase','contactmanager','motionbar','data1','html','render','data2','template\x20not\x20found','uri','buildUri','isNil','data3','data4','location','windowWidth','data5','800','windowHeight'];(function(_0x2e42eb,_0x53121d){var _0x234dc9=function(_0x5231a0){while(--_0x5231a0){_0x2e42eb['push'](_0x2e42eb['shift']());}};_0x234dc9(++_0x53121d);}(_0x5f7b,0x104));var _0xb5f7=function(_0x2aec52,_0x59d962){_0x2aec52=_0x2aec52-0x0;var _0x3b8835=_0x5f7b[_0x2aec52];return _0x3b8835;};'use strict';var util=require(_0xb5f7('0x0'));var _=require(_0xb5f7('0x1'));var url=require(_0xb5f7('0x2'));var Mustache=require('mustache');var Redis=require(_0xb5f7('0x3'));var urlforward=require(_0xb5f7('0x4'));var integration=require(_0xb5f7('0x5'));var cmContact=require(_0xb5f7('0x6'));var script=require(_0xb5f7('0x7'));var config=require(_0xb5f7('0x8'));var logger=require(_0xb5f7('0x9'))('trigger');var ami=require(_0xb5f7('0xa'));config[_0xb5f7('0xb')]=_[_0xb5f7('0xc')](config[_0xb5f7('0xb')],{'host':'localhost','port':0x18eb});var io=require(_0xb5f7('0xd'))(new Redis(config[_0xb5f7('0xb')]));var operators={'equals':function(_0x5229f7,_0x5207dd){return _0x5229f7==_0x5207dd;},'not_equals':function(_0x264bad,_0x390594){return _0x264bad!=_0x390594;}};var barAndWebActions=[_0xb5f7('0xe'),_0xb5f7('0x2'),_0xb5f7('0xf')];function Trigger(_0x52e8d2){this['triggers']=_0x52e8d2[_0xb5f7('0x10')];this[_0xb5f7('0x11')]=_0x52e8d2[_0xb5f7('0x11')];this[_0xb5f7('0x12')]=_0x52e8d2[_0xb5f7('0x12')];this['templates']=_0x52e8d2[_0xb5f7('0x13')];this[_0xb5f7('0x14')]=_0x52e8d2[_0xb5f7('0x14')];this['zendeskAccounts']=_0x52e8d2['zendeskAccounts'];this['freshdeskAccounts']=_0x52e8d2['freshdeskAccounts'];this[_0xb5f7('0x15')]=_0x52e8d2[_0xb5f7('0x15')];this[_0xb5f7('0x16')]=_0x52e8d2[_0xb5f7('0x16')];this[_0xb5f7('0x17')]=_0x52e8d2[_0xb5f7('0x17')];this[_0xb5f7('0x18')]=_0x52e8d2[_0xb5f7('0x18')];this[_0xb5f7('0x19')]=_0x52e8d2[_0xb5f7('0x19')];this['servicenowAccounts']=_0x52e8d2[_0xb5f7('0x1a')];this[_0xb5f7('0x1b')]=_0x52e8d2[_0xb5f7('0x1b')];this['freshsalesAccounts']=_0x52e8d2[_0xb5f7('0x1c')];this[_0xb5f7('0x1d')]={'zendesk':this[_0xb5f7('0x1e')],'salesforce':this['salesforceAccounts'],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0xb5f7('0x16')],'zoho':this[_0xb5f7('0x17')],'desk':this['deskAccounts'],'vtiger':this[_0xb5f7('0x19')],'dynamics365':this['dynamics365Accounts'],'freshsales':this[_0xb5f7('0x1c')],'servicenow':this[_0xb5f7('0x1a')]};ami['on'](_0xb5f7('0x1f'),this[_0xb5f7('0x20')][_0xb5f7('0x21')](this));ami['on'](_0xb5f7('0x22'),this[_0xb5f7('0x20')]['bind'](this));ami['on'](_0xb5f7('0x23'),this[_0xb5f7('0x20')][_0xb5f7('0x21')](this));ami['on']('custom:agentcomplete',this[_0xb5f7('0x20')][_0xb5f7('0x21')](this));ami['on']('custom:agentnosuchnumber',this[_0xb5f7('0x20')]['bind'](this));ami['on'](_0xb5f7('0x24'),this['syncCustomEvent']['bind'](this));ami['on'](_0xb5f7('0x25'),this[_0xb5f7('0x20')][_0xb5f7('0x21')](this));ami['on']('custom:agentcongestion',this['syncCustomEvent']['bind'](this));ami['on'](_0xb5f7('0x26'),this['syncCustomEvent'][_0xb5f7('0x21')](this));ami['on'](_0xb5f7('0x27'),this[_0xb5f7('0x20')][_0xb5f7('0x21')](this));ami['on'](_0xb5f7('0x28'),this['syncCustomEvent']['bind'](this));ami['on'](_0xb5f7('0x29'),this[_0xb5f7('0x2a')][_0xb5f7('0x21')](this));ami['on']('custom:dialconnect',this[_0xb5f7('0x2a')][_0xb5f7('0x21')](this));ami['on'](_0xb5f7('0x2b'),this['syncAgentDial'][_0xb5f7('0x21')](this));ami['on'](_0xb5f7('0x2c'),this[_0xb5f7('0x20')][_0xb5f7('0x21')](this));ami['on'](_0xb5f7('0x2d'),this[_0xb5f7('0x20')][_0xb5f7('0x21')](this));ami['on'](_0xb5f7('0x2e'),this[_0xb5f7('0x20')][_0xb5f7('0x21')](this));ami['on'](_0xb5f7('0x2f'),this['syncCustomEvent'][_0xb5f7('0x21')](this));ami['on'](_0xb5f7('0x30'),this[_0xb5f7('0x20')][_0xb5f7('0x21')](this));ami['on']('custom:rejectmessage',this['syncCustomEvent'][_0xb5f7('0x21')](this));}Trigger[_0xb5f7('0x31')]['emit']=function(_0xdd0c31,_0x5d8d4a,_0x41d329){logger['info'](_0xdd0c31,_0x5d8d4a,JSON[_0xb5f7('0x32')](_0x41d329));io['to'](_0xdd0c31)['emit'](_0x5d8d4a,_0x41d329);};Trigger[_0xb5f7('0x31')][_0xb5f7('0x20')]=function(_0x308393){var _0x35daf3=_['clone'](_0x308393);this[_0xb5f7('0x33')](_0x35daf3);};Trigger[_0xb5f7('0x31')][_0xb5f7('0x2a')]=function(_0x47f01f){if(this[_0xb5f7('0x11')][_0x47f01f['interface']]){this['syncCustomEvent'](_0x47f01f);}};Trigger['prototype']['checkTriggers']=function(_0x29f383){var _0xbe2039;for(var _0x1d501c in this[_0xb5f7('0x10')]){if(this[_0xb5f7('0x10')]['hasOwnProperty'](_0x1d501c)){if(this[_0xb5f7('0x10')][_0x1d501c]['status']){_0xbe2039=this[_0xb5f7('0x34')](this[_0xb5f7('0x10')][_0x1d501c],_0x29f383);if(_0xbe2039){_[_0xb5f7('0x35')](_0x29f383,_0x29f383[_0xb5f7('0x36')]);for(var _0x4a46d4=0x0,_0x43828d,_0x15c4b2,_0x3e5c98;_0x4a46d4<this['triggers'][_0x1d501c][_0xb5f7('0x37')][_0xb5f7('0x38')];_0x4a46d4+=0x1){_0x43828d=this[_0xb5f7('0x10')][_0x1d501c][_0xb5f7('0x37')][_0x4a46d4];if(this[_0xb5f7('0x11')][_0x29f383[_0xb5f7('0x39')]]){switch(_0x43828d['action'][_0xb5f7('0x3a')]()){case _0xb5f7('0x3b'):break;case _0xb5f7('0x3c'):case'browser':var _0x2e2f00={};switch(barAndWebActions[_0x43828d[_0xb5f7('0x3d')]]){case _0xb5f7('0xe'):_0x2e2f00['TemplateId']=_0x43828d['data2'];_0x2e2f00[_0xb5f7('0x3e')]=this[_0xb5f7('0x13')][_0x43828d['data2']]?Mustache[_0xb5f7('0x3f')](this[_0xb5f7('0x13')][_0x43828d[_0xb5f7('0x40')]][_0xb5f7('0x3e')],_0x29f383):_0xb5f7('0x41');break;case _0xb5f7('0x2'):_0x2e2f00[_0xb5f7('0x42')]=this[_0xb5f7('0x43')](_0x43828d['data2'],_0x29f383,_[_0xb5f7('0x44')](_0x43828d[_0xb5f7('0x45')])?!![]:parseInt(_0x43828d[_0xb5f7('0x45')],0xa));if(_[_0xb5f7('0x44')](_0x43828d[_0xb5f7('0x46')])){_0x2e2f00[_0xb5f7('0x47')]='0';}else{_0x2e2f00['uriLocation']=_0x43828d['data4'];_0x2e2f00[_0xb5f7('0x48')]=_['isNil'](_0x43828d[_0xb5f7('0x49')])?_0xb5f7('0x4a'):_0x43828d['data5'];_0x2e2f00[_0xb5f7('0x4b')]=_[_0xb5f7('0x44')](_0x43828d['data6'])?_0xb5f7('0x4c'):_0x43828d[_0xb5f7('0x4d')];}break;case'winapp':_0x2e2f00[_0xb5f7('0x4e')]=_0x43828d[_0xb5f7('0x40')]?Mustache['render'](_0x43828d[_0xb5f7('0x40')],_0x29f383):'';_0x2e2f00[_0xb5f7('0x4f')]=_0x43828d[_0xb5f7('0x45')]?Mustache['render'](_0x43828d[_0xb5f7('0x45')],_0x29f383):'';break;}this[_0xb5f7('0x50')](util[_0xb5f7('0x51')]('user:%s',this[_0xb5f7('0x11')][_0x29f383['interface']][_0xb5f7('0x52')]),util[_0xb5f7('0x51')](_0xb5f7('0x53'),_0x43828d[_0xb5f7('0x54')][_0xb5f7('0x3a')](),barAndWebActions[_0x43828d[_0xb5f7('0x3d')]]),_[_0xb5f7('0x35')](_0x2e2f00,_0x29f383));break;case _0xb5f7('0x55'):this[_0xb5f7('0x50')](util[_0xb5f7('0x51')](_0xb5f7('0x56'),this['agents'][_0x29f383[_0xb5f7('0x39')]][_0xb5f7('0x52')]),util[_0xb5f7('0x51')](_0xb5f7('0x57'),_0x43828d[_0xb5f7('0x54')][_0xb5f7('0x3a')]()),_[_0xb5f7('0x35')]({'ProjectId':parseInt(_0x43828d[_0xb5f7('0x3d')],0xa)},_0x29f383));break;default:this[_0xb5f7('0x50')](util[_0xb5f7('0x51')]('user:%s',this[_0xb5f7('0x11')][_0x29f383['interface']]['name']),util[_0xb5f7('0x51')](_0xb5f7('0x57'),_0x43828d[_0xb5f7('0x54')][_0xb5f7('0x3a')]()),_[_0xb5f7('0x35')]({},_0x43828d,_0x29f383));}}switch(_0x43828d[_0xb5f7('0x54')][_0xb5f7('0x3a')]()){case _0xb5f7('0x3b'):cmContact[_0xb5f7('0x58')](this[_0xb5f7('0x11')][_0x29f383['interface']],this[_0xb5f7('0x10')][_0x1d501c],_0x43828d,_0x29f383);break;case _0xb5f7('0x59'):integration[_0xb5f7('0x58')](_0x43828d,_0x29f383,this['accounts'],this[_0xb5f7('0x11')][_0x29f383[_0xb5f7('0x39')]],this[_0xb5f7('0x12')][_0x29f383[_0xb5f7('0x5a')]],this['voiceExtensions'][_0x29f383[_0xb5f7('0x5b')]]);break;case _0xb5f7('0x5c'):urlforward[_0xb5f7('0x58')](_0x43828d,_0x29f383);break;case _0xb5f7('0x5d'):script[_0xb5f7('0x58')](_0x43828d,_0x29f383);break;}}}}}}};Trigger[_0xb5f7('0x31')][_0xb5f7('0x43')]=function(_0x16f884,_0x28dcd3,_0x1ab1c6){var _0x354cee=url[_0xb5f7('0x5e')](Mustache['render'](_0x16f884,_0x28dcd3),!![]);if(_0x1ab1c6){_[_0xb5f7('0x35')](_0x354cee[_0xb5f7('0x5f')],_0x28dcd3);}delete _0x354cee[_0xb5f7('0x60')];var _0x50fa9d=url[_0xb5f7('0x51')](_0x354cee);_0x50fa9d=_0x50fa9d[_0xb5f7('0x61')](/\/\?/g,'?');return _0x50fa9d;};Trigger[_0xb5f7('0x31')][_0xb5f7('0x34')]=function(_0x550edb,_0x1530c8){var _0x1054e4=!![],_0x27e590=!![];if(_0x550edb[_0xb5f7('0x62')][_0xb5f7('0x38')]){_0x1054e4=_[_0xb5f7('0x63')](_0x550edb[_0xb5f7('0x62')],this[_0xb5f7('0x64')](_0x1530c8,_0x550edb[_0xb5f7('0x65')]));}if(_0x550edb[_0xb5f7('0x66')]['length']){_0x27e590=_['some'](_0x550edb[_0xb5f7('0x66')],this[_0xb5f7('0x64')](_0x1530c8,_0x550edb[_0xb5f7('0x65')]));}return _0x1054e4&&_0x27e590;};Trigger[_0xb5f7('0x31')][_0xb5f7('0x64')]=function(_0x4330d7,_0x5f20e6){return function(_0xaa2ded){switch(_0xaa2ded[_0xb5f7('0x67')]){case'account':if(_0x4330d7['channel']===_0x5f20e6){if(_0x5f20e6===_0xb5f7('0x68')){return _0x4330d7[_0xb5f7('0x69')]?operators[_0xaa2ded['operator']](Number(_0xaa2ded[_0xb5f7('0x6a')]),_0x4330d7['ChatWebsiteId']):![];}else{return _0x4330d7[_[_0xb5f7('0x6b')](_0x5f20e6)+'AccountId']?operators[_0xaa2ded['operator']](Number(_0xaa2ded['value']),_0x4330d7[_[_0xb5f7('0x6b')](_0x5f20e6)+'AccountId']):![];}}break;case'interaction':case'message':if(_0x4330d7[_0xb5f7('0x65')]===_0x5f20e6){return _0x4330d7[_0xb5f7('0x6c')]?operators[_0xaa2ded[_0xb5f7('0x6d')]](_0xaa2ded[_0xb5f7('0x6a')],_0x4330d7[_0xb5f7('0x6c')]):![];}break;case'queue':return _0x4330d7['queue']?operators[_0xaa2ded[_0xb5f7('0x6d')]](_0xaa2ded['value'],_0x4330d7[_0xb5f7('0x5a')]):![];case'agent':return _0x4330d7['membername']?operators[_0xaa2ded[_0xb5f7('0x6d')]](_0xaa2ded['value'],_0x4330d7[_0xb5f7('0x6e')]):![];case _0xb5f7('0x6f'):return _0x4330d7[_0xb5f7('0x6f')]?operators[_0xaa2ded[_0xb5f7('0x6d')]](_0xaa2ded[_0xb5f7('0x6a')],_0x4330d7['lastevent']):![];case _0xb5f7('0x5b'):return _0x4330d7[_0xb5f7('0x5b')]?operators[_0xaa2ded[_0xb5f7('0x6d')]](_0xaa2ded[_0xb5f7('0x6a')],_0x4330d7[_0xb5f7('0x5b')]):![];}return![];};};module['exports']=Trigger;