Built motion from commit 85328c08.|2.5.50
[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 _0x75b6=['format','user:%s','name','trigger:%s:%s','toLowerCase','data1','jscripty','trigger:%s','exec','integration','voiceExtensions','routeId','urlforward','script','parse','query','replace','channel','AllConditions','checkConditions','AnyConditions','some','account','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','event','queue','agent','membername','lastevent','null','substatus','offlineMessage','created','exports','util','mustache','ioredis','./urlforward','./cmContact','./script','../../../config/environment','trigger','redis','defaults','socket.io-emitter','popup','url','winapp','triggers','agents','voiceQueues','templates','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','accounts','zendeskAccounts','freshsalesAccounts','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:amd','custom:timeout','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','prototype','emit','info','stringify','clone','motionChannel','undefined','checkTriggers','hasOwnProperty','checkTrigger','merge','variables','Actions','length','interface','action','contactmanager','motionbar','browser','TemplateId','html','data2','render','template\x20not\x20found','uri','buildUri','data3','isNil','location','uriLocation','data4','windowWidth','data5','800','windowHeight','data6','600','winApplication','winArguments'];(function(_0x325ee2,_0xaf1371){var _0x7f2741=function(_0x15569a){while(--_0x15569a){_0x325ee2['push'](_0x325ee2['shift']());}};_0x7f2741(++_0xaf1371);}(_0x75b6,0x1a4));var _0x675b=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x75b6[_0x321bb2];return _0x9c12ed;};'use strict';var util=require(_0x675b('0x0'));var _=require('lodash');var url=require('url');var Mustache=require(_0x675b('0x1'));var Redis=require(_0x675b('0x2'));var urlforward=require(_0x675b('0x3'));var integration=require('./integration');var cmContact=require(_0x675b('0x4'));var script=require(_0x675b('0x5'));var config=require(_0x675b('0x6'));var logger=require('../../../config/logger')(_0x675b('0x7'));var ami=require('../ami');config[_0x675b('0x8')]=_[_0x675b('0x9')](config[_0x675b('0x8')],{'host':'localhost','port':0x18eb});var io=require(_0x675b('0xa'))(new Redis(config['redis']));var operators={'equals':function(_0x1375e3,_0xf730f5){return _0x1375e3==_0xf730f5;},'not_equals':function(_0x24cf1c,_0xa32225){return _0x24cf1c!=_0xa32225;}};var barAndWebActions=[_0x675b('0xb'),_0x675b('0xc'),_0x675b('0xd')];function Trigger(_0xc9347b){this[_0x675b('0xe')]=_0xc9347b[_0x675b('0xe')];this['agents']=_0xc9347b[_0x675b('0xf')];this[_0x675b('0x10')]=_0xc9347b[_0x675b('0x10')];this[_0x675b('0x11')]=_0xc9347b['templates'];this['voiceExtensions']=_0xc9347b['voiceExtensions'];this['zendeskAccounts']=_0xc9347b['zendeskAccounts'];this[_0x675b('0x12')]=_0xc9347b['freshdeskAccounts'];this['salesforceAccounts']=_0xc9347b[_0x675b('0x13')];this[_0x675b('0x14')]=_0xc9347b[_0x675b('0x14')];this[_0x675b('0x15')]=_0xc9347b['zohoAccounts'];this[_0x675b('0x16')]=_0xc9347b[_0x675b('0x16')];this[_0x675b('0x17')]=_0xc9347b[_0x675b('0x17')];this[_0x675b('0x18')]=_0xc9347b[_0x675b('0x18')];this[_0x675b('0x19')]=_0xc9347b[_0x675b('0x19')];this['freshsalesAccounts']=_0xc9347b['freshsalesAccounts'];this[_0x675b('0x1a')]={'zendesk':this[_0x675b('0x1b')],'salesforce':this['salesforceAccounts'],'freshdesk':this['freshdeskAccounts'],'sugarcrm':this[_0x675b('0x14')],'zoho':this[_0x675b('0x15')],'desk':this[_0x675b('0x16')],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0x675b('0x19')],'freshsales':this[_0x675b('0x1c')],'servicenow':this['servicenowAccounts']};ami['on']('custom:agentcalled',this[_0x675b('0x1d')][_0x675b('0x1e')](this));ami['on'](_0x675b('0x1f'),this[_0x675b('0x1d')][_0x675b('0x1e')](this));ami['on'](_0x675b('0x20'),this[_0x675b('0x1d')][_0x675b('0x1e')](this));ami['on'](_0x675b('0x21'),this[_0x675b('0x1d')]['bind'](this));ami['on'](_0x675b('0x22'),this[_0x675b('0x1d')][_0x675b('0x1e')](this));ami['on'](_0x675b('0x23'),this['syncCustomEvent'][_0x675b('0x1e')](this));ami['on'](_0x675b('0x24'),this['syncCustomEvent'][_0x675b('0x1e')](this));ami['on']('custom:agentcongestion',this[_0x675b('0x1d')][_0x675b('0x1e')](this));ami['on']('custom:agentreject',this[_0x675b('0x1d')][_0x675b('0x1e')](this));ami['on'](_0x675b('0x25'),this[_0x675b('0x1d')][_0x675b('0x1e')](this));ami['on']('custom:queuecallerabandon',this[_0x675b('0x1d')][_0x675b('0x1e')](this));ami['on'](_0x675b('0x26'),this[_0x675b('0x1d')][_0x675b('0x1e')](this));ami['on'](_0x675b('0x27'),this[_0x675b('0x28')]['bind'](this));ami['on'](_0x675b('0x29'),this[_0x675b('0x28')][_0x675b('0x1e')](this));ami['on'](_0x675b('0x2a'),this['syncAgentDial'][_0x675b('0x1e')](this));ami['on'](_0x675b('0x2b'),this[_0x675b('0x1d')][_0x675b('0x1e')](this));ami['on'](_0x675b('0x2c'),this[_0x675b('0x1d')][_0x675b('0x1e')](this));ami['on'](_0x675b('0x2d'),this['syncCustomEvent'][_0x675b('0x1e')](this));ami['on']('custom:incomingmessage',this[_0x675b('0x1d')][_0x675b('0x1e')](this));ami['on']('custom:outgoingmessage',this['syncCustomEvent'][_0x675b('0x1e')](this));ami['on'](_0x675b('0x2e'),this['syncCustomEvent'][_0x675b('0x1e')](this));ami['on'](_0x675b('0x2f'),this[_0x675b('0x1d')][_0x675b('0x1e')](this));ami['on'](_0x675b('0x30'),this[_0x675b('0x1d')]['bind'](this));}Trigger[_0x675b('0x31')][_0x675b('0x32')]=function(_0x5437d4,_0x4b239e,_0x918e1c){logger[_0x675b('0x33')](_0x5437d4,_0x4b239e,JSON[_0x675b('0x34')](_0x918e1c));io['to'](_0x5437d4)[_0x675b('0x32')](_0x4b239e,_0x918e1c);};Trigger[_0x675b('0x31')][_0x675b('0x1d')]=function(_0x2a0d1d){var _0x37710a=_[_0x675b('0x35')](_0x2a0d1d);if(typeof _0x37710a[_0x675b('0x36')]===_0x675b('0x37')){_0x37710a['motionChannel']='voice';}this[_0x675b('0x38')](_0x37710a);};Trigger['prototype'][_0x675b('0x28')]=function(_0x457a37){if(this[_0x675b('0xf')][_0x457a37['interface']]){this['syncCustomEvent'](_0x457a37);}};Trigger['prototype'][_0x675b('0x38')]=function(_0x48bf5a){var _0x399099;for(var _0x5a8083 in this['triggers']){if(this[_0x675b('0xe')][_0x675b('0x39')](_0x5a8083)){if(this[_0x675b('0xe')][_0x5a8083]['status']){_0x399099=this[_0x675b('0x3a')](this[_0x675b('0xe')][_0x5a8083],_0x48bf5a);if(_0x399099){_[_0x675b('0x3b')](_0x48bf5a,_0x48bf5a[_0x675b('0x3c')]);for(var _0x29d076=0x0,_0x4e789a,_0x45e6d4,_0x69d4bb;_0x29d076<this[_0x675b('0xe')][_0x5a8083][_0x675b('0x3d')][_0x675b('0x3e')];_0x29d076+=0x1){_0x4e789a=this[_0x675b('0xe')][_0x5a8083]['Actions'][_0x29d076];if(this[_0x675b('0xf')][_0x48bf5a[_0x675b('0x3f')]]){switch(_0x4e789a[_0x675b('0x40')]['toLowerCase']()){case _0x675b('0x41'):break;case _0x675b('0x42'):case _0x675b('0x43'):var _0x443e26={};switch(barAndWebActions[_0x4e789a['data1']]){case _0x675b('0xb'):_0x443e26[_0x675b('0x44')]=_0x4e789a['data2'];_0x443e26[_0x675b('0x45')]=this[_0x675b('0x11')][_0x4e789a[_0x675b('0x46')]]?Mustache[_0x675b('0x47')](this['templates'][_0x4e789a[_0x675b('0x46')]][_0x675b('0x45')],_0x48bf5a):_0x675b('0x48');break;case _0x675b('0xc'):_0x443e26[_0x675b('0x49')]=this[_0x675b('0x4a')](_0x4e789a[_0x675b('0x46')],_0x48bf5a,_['isNil'](_0x4e789a[_0x675b('0x4b')])?!![]:parseInt(_0x4e789a[_0x675b('0x4b')],0xa));if(_[_0x675b('0x4c')](_0x4e789a['data4'])){_0x443e26[_0x675b('0x4d')]='0';}else{_0x443e26[_0x675b('0x4e')]=_0x4e789a[_0x675b('0x4f')];_0x443e26[_0x675b('0x50')]=_[_0x675b('0x4c')](_0x4e789a[_0x675b('0x51')])?_0x675b('0x52'):_0x4e789a[_0x675b('0x51')];_0x443e26[_0x675b('0x53')]=_['isNil'](_0x4e789a[_0x675b('0x54')])?_0x675b('0x55'):_0x4e789a[_0x675b('0x54')];}break;case'winapp':_0x443e26[_0x675b('0x56')]=_0x4e789a[_0x675b('0x46')]?Mustache[_0x675b('0x47')](_0x4e789a[_0x675b('0x46')],_0x48bf5a):'';_0x443e26[_0x675b('0x57')]=_0x4e789a['data3']?Mustache[_0x675b('0x47')](_0x4e789a[_0x675b('0x4b')],_0x48bf5a):'';break;}this['emit'](util[_0x675b('0x58')](_0x675b('0x59'),this[_0x675b('0xf')][_0x48bf5a[_0x675b('0x3f')]][_0x675b('0x5a')]),util[_0x675b('0x58')](_0x675b('0x5b'),_0x4e789a[_0x675b('0x40')][_0x675b('0x5c')](),barAndWebActions[_0x4e789a[_0x675b('0x5d')]]),_['merge'](_0x443e26,_0x48bf5a));break;case _0x675b('0x5e'):this[_0x675b('0x32')](util[_0x675b('0x58')](_0x675b('0x59'),this[_0x675b('0xf')][_0x48bf5a['interface']][_0x675b('0x5a')]),util[_0x675b('0x58')](_0x675b('0x5f'),_0x4e789a[_0x675b('0x40')][_0x675b('0x5c')]()),_[_0x675b('0x3b')]({'ProjectId':parseInt(_0x4e789a[_0x675b('0x5d')],0xa)},_0x48bf5a));break;default:this[_0x675b('0x32')](util[_0x675b('0x58')]('user:%s',this[_0x675b('0xf')][_0x48bf5a[_0x675b('0x3f')]]['name']),util[_0x675b('0x58')]('trigger:%s',_0x4e789a[_0x675b('0x40')][_0x675b('0x5c')]()),_[_0x675b('0x3b')]({},_0x4e789a,_0x48bf5a));}}switch(_0x4e789a[_0x675b('0x40')]['toLowerCase']()){case _0x675b('0x41'):cmContact[_0x675b('0x60')](this[_0x675b('0xf')][_0x48bf5a[_0x675b('0x3f')]],this[_0x675b('0xe')][_0x5a8083],_0x4e789a,_0x48bf5a);break;case _0x675b('0x61'):integration[_0x675b('0x60')](_0x4e789a,_0x48bf5a,this[_0x675b('0x1a')],this[_0x675b('0xf')][_0x48bf5a['interface']],this[_0x675b('0x10')][_0x48bf5a['queue']],this[_0x675b('0x62')][_0x48bf5a[_0x675b('0x63')]]);break;case _0x675b('0x64'):urlforward[_0x675b('0x60')](_0x4e789a,_0x48bf5a);break;case _0x675b('0x65'):script[_0x675b('0x60')](_0x4e789a,_0x48bf5a);break;}}}}}}};Trigger[_0x675b('0x31')][_0x675b('0x4a')]=function(_0x4b3505,_0x49e5bd,_0x29c666){var _0x1d08ac=url[_0x675b('0x66')](Mustache[_0x675b('0x47')](_0x4b3505,_0x49e5bd),!![]);if(_0x29c666){_['merge'](_0x1d08ac[_0x675b('0x67')],_0x49e5bd);}delete _0x1d08ac['search'];var _0x38f6e6=url[_0x675b('0x58')](_0x1d08ac);_0x38f6e6=_0x38f6e6[_0x675b('0x68')](/\/\?/g,'?');return _0x38f6e6;};Trigger[_0x675b('0x31')]['checkTrigger']=function(_0x231cf2,_0x3ccf38){var _0x76e4a6=!![];var _0x2ffaee=!![];var _0x3e9aae=![];if(_0x231cf2[_0x675b('0x69')]===_0x3ccf38[_0x675b('0x36')]){_0x3e9aae=!![];}if(_0x231cf2[_0x675b('0x6a')][_0x675b('0x3e')]){_0x76e4a6=_['every'](_0x231cf2[_0x675b('0x6a')],this[_0x675b('0x6b')](_0x3ccf38,_0x231cf2[_0x675b('0x69')]));}if(_0x231cf2[_0x675b('0x6c')][_0x675b('0x3e')]){_0x2ffaee=_[_0x675b('0x6d')](_0x231cf2['AnyConditions'],this[_0x675b('0x6b')](_0x3ccf38,_0x231cf2['channel']));}return _0x3e9aae&&_0x76e4a6&&_0x2ffaee;};Trigger[_0x675b('0x31')][_0x675b('0x6b')]=function(_0x25c249,_0x280cc9){return function(_0x585c58){switch(_0x585c58['field']){case _0x675b('0x6e'):if(_0x25c249[_0x675b('0x69')]===_0x280cc9){if(_0x280cc9===_0x675b('0x6f')){return _0x25c249[_0x675b('0x70')]?operators[_0x585c58[_0x675b('0x71')]](Number(_0x585c58[_0x675b('0x72')]),_0x25c249[_0x675b('0x70')]):![];}else{return _0x25c249[_[_0x675b('0x73')](_0x280cc9)+_0x675b('0x74')]?operators[_0x585c58[_0x675b('0x71')]](Number(_0x585c58[_0x675b('0x72')]),_0x25c249[_['upperFirst'](_0x280cc9)+'AccountId']):![];}}break;case'interaction':case'message':if(_0x25c249[_0x675b('0x69')]===_0x280cc9){return _0x25c249[_0x675b('0x75')]?operators[_0x585c58[_0x675b('0x71')]](_0x585c58[_0x675b('0x72')],_0x25c249[_0x675b('0x75')]):![];}break;case _0x675b('0x76'):return _0x25c249[_0x675b('0x76')]?operators[_0x585c58[_0x675b('0x71')]](_0x585c58['value'],_0x25c249[_0x675b('0x76')]):![];case _0x675b('0x77'):return _0x25c249[_0x675b('0x78')]?operators[_0x585c58['operator']](_0x585c58[_0x675b('0x72')],_0x25c249['membername']):![];case _0x675b('0x79'):return _0x25c249[_0x675b('0x79')]?operators[_0x585c58[_0x675b('0x71')]](_0x585c58[_0x675b('0x72')],_0x25c249[_0x675b('0x79')]):![];case'routeId':return _0x25c249['routeId']?operators[_0x585c58[_0x675b('0x71')]](_0x585c58[_0x675b('0x72')],_0x25c249['routeId']):![];case'mailSubstatus':if(_0x585c58[_0x675b('0x72')]===_0x675b('0x7a'))_0x585c58[_0x675b('0x72')]=null;return typeof _0x25c249[_0x675b('0x7b')]!==_0x675b('0x37')?operators[_0x585c58[_0x675b('0x71')]](_0x585c58[_0x675b('0x72')],_0x25c249[_0x675b('0x7b')]):![];case _0x675b('0x7c'):if(_0x25c249[_0x675b('0x69')]===_0x280cc9){return _0x585c58[_0x675b('0x72')]===_0x675b('0x7d')&&_0x585c58[_0x675b('0x71')]==='equals'?!![]:![];}break;}return![];};};module[_0x675b('0x7e')]=Trigger;