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