Built motion from commit 47436d59.|2.6.7
[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 _0xd1f8=['interaction','message','event','agent','membername','lastevent','null','substatus','offlineMessage','created','exports','util','lodash','url','mustache','./urlforward','./cmContact','../../../config/environment','trigger','../ami','defaults','redis','localhost','socket.io-emitter','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','custom:agentcalled','custom:agentconnect','syncCustomEvent','custom:agentringnoanswer','bind','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:queuecallerabandon','custom:dialbegin','syncAgentDial','custom:dialconnect','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:acceptmessage','custom:rejectmessage','custom:offlineMessage','emit','info','stringify','prototype','undefined','motionChannel','voice','checkTriggers','interface','hasOwnProperty','status','checkTrigger','Actions','length','action','toLowerCase','contactmanager','motionbar','data1','TemplateId','data2','html','template\x20not\x20found','uri','data3','isNil','data4','uriLocation','data5','800','windowHeight','data6','600','winApplication','render','winArguments','format','user:%s','name','trigger:%s:%s','merge','jscripty','trigger:%s','exec','integration','accounts','queue','routeId','urlforward','script','buildUri','query','search','channel','AllConditions','checkConditions','some','AnyConditions','field','account','ChatWebsiteId','value','upperFirst','operator','AccountId'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0xd1f8,0x18e));var _0x8d1f=function(_0x58afd5,_0x534a48){_0x58afd5=_0x58afd5-0x0;var _0x3e503b=_0xd1f8[_0x58afd5];return _0x3e503b;};'use strict';var util=require(_0x8d1f('0x0'));var _=require(_0x8d1f('0x1'));var url=require(_0x8d1f('0x2'));var Mustache=require(_0x8d1f('0x3'));var Redis=require('ioredis');var urlforward=require(_0x8d1f('0x4'));var integration=require('./integration');var cmContact=require(_0x8d1f('0x5'));var script=require('./script');var config=require(_0x8d1f('0x6'));var logger=require('../../../config/logger')(_0x8d1f('0x7'));var ami=require(_0x8d1f('0x8'));config['redis']=_[_0x8d1f('0x9')](config[_0x8d1f('0xa')],{'host':_0x8d1f('0xb'),'port':0x18eb});var io=require(_0x8d1f('0xc'))(new Redis(config[_0x8d1f('0xa')]));var operators={'equals':function(_0x5950c6,_0x3c58c4){return _0x5950c6==_0x3c58c4;},'not_equals':function(_0x426673,_0x56da6e){return _0x426673!=_0x56da6e;}};var barAndWebActions=[_0x8d1f('0xd'),_0x8d1f('0x2'),_0x8d1f('0xe')];function Trigger(_0x425838){this[_0x8d1f('0xf')]=_0x425838['triggers'];this['agents']=_0x425838[_0x8d1f('0x10')];this['voiceQueues']=_0x425838[_0x8d1f('0x11')];this[_0x8d1f('0x12')]=_0x425838['templates'];this[_0x8d1f('0x13')]=_0x425838[_0x8d1f('0x13')];this[_0x8d1f('0x14')]=_0x425838['zendeskAccounts'];this[_0x8d1f('0x15')]=_0x425838[_0x8d1f('0x15')];this[_0x8d1f('0x16')]=_0x425838[_0x8d1f('0x16')];this[_0x8d1f('0x17')]=_0x425838[_0x8d1f('0x17')];this[_0x8d1f('0x18')]=_0x425838[_0x8d1f('0x18')];this[_0x8d1f('0x19')]=_0x425838[_0x8d1f('0x19')];this[_0x8d1f('0x1a')]=_0x425838[_0x8d1f('0x1a')];this[_0x8d1f('0x1b')]=_0x425838[_0x8d1f('0x1b')];this[_0x8d1f('0x1c')]=_0x425838[_0x8d1f('0x1c')];this[_0x8d1f('0x1d')]=_0x425838['freshsalesAccounts'];this['accounts']={'zendesk':this[_0x8d1f('0x14')],'salesforce':this[_0x8d1f('0x16')],'freshdesk':this[_0x8d1f('0x15')],'sugarcrm':this[_0x8d1f('0x17')],'zoho':this[_0x8d1f('0x18')],'desk':this[_0x8d1f('0x19')],'vtiger':this['vtigerAccounts'],'dynamics365':this[_0x8d1f('0x1c')],'freshsales':this[_0x8d1f('0x1d')],'servicenow':this[_0x8d1f('0x1b')]};ami['on'](_0x8d1f('0x1e'),this['syncCustomEvent']['bind'](this));ami['on'](_0x8d1f('0x1f'),this[_0x8d1f('0x20')]['bind'](this));ami['on'](_0x8d1f('0x21'),this['syncCustomEvent'][_0x8d1f('0x22')](this));ami['on'](_0x8d1f('0x23'),this[_0x8d1f('0x20')][_0x8d1f('0x22')](this));ami['on'](_0x8d1f('0x24'),this[_0x8d1f('0x20')][_0x8d1f('0x22')](this));ami['on'](_0x8d1f('0x25'),this[_0x8d1f('0x20')]['bind'](this));ami['on'](_0x8d1f('0x26'),this[_0x8d1f('0x20')]['bind'](this));ami['on'](_0x8d1f('0x27'),this[_0x8d1f('0x20')]['bind'](this));ami['on'](_0x8d1f('0x28'),this[_0x8d1f('0x20')][_0x8d1f('0x22')](this));ami['on']('custom:amd',this[_0x8d1f('0x20')][_0x8d1f('0x22')](this));ami['on'](_0x8d1f('0x29'),this['syncCustomEvent'][_0x8d1f('0x22')](this));ami['on']('custom:timeout',this['syncCustomEvent'][_0x8d1f('0x22')](this));ami['on'](_0x8d1f('0x2a'),this[_0x8d1f('0x2b')][_0x8d1f('0x22')](this));ami['on'](_0x8d1f('0x2c'),this[_0x8d1f('0x2b')][_0x8d1f('0x22')](this));ami['on'](_0x8d1f('0x2d'),this['syncAgentDial'][_0x8d1f('0x22')](this));ami['on'](_0x8d1f('0x2e'),this[_0x8d1f('0x20')][_0x8d1f('0x22')](this));ami['on'](_0x8d1f('0x2f'),this[_0x8d1f('0x20')]['bind'](this));ami['on'](_0x8d1f('0x30'),this[_0x8d1f('0x20')]['bind'](this));ami['on'](_0x8d1f('0x31'),this[_0x8d1f('0x20')]['bind'](this));ami['on']('custom:outgoingmessage',this['syncCustomEvent'][_0x8d1f('0x22')](this));ami['on'](_0x8d1f('0x32'),this[_0x8d1f('0x20')][_0x8d1f('0x22')](this));ami['on'](_0x8d1f('0x33'),this[_0x8d1f('0x20')][_0x8d1f('0x22')](this));ami['on'](_0x8d1f('0x34'),this['syncCustomEvent']['bind'](this));}Trigger['prototype'][_0x8d1f('0x35')]=function(_0xdbe040,_0x30b4d2,_0x14f7f2){logger[_0x8d1f('0x36')](_0xdbe040,_0x30b4d2,JSON[_0x8d1f('0x37')](_0x14f7f2));io['to'](_0xdbe040)['emit'](_0x30b4d2,_0x14f7f2);};Trigger[_0x8d1f('0x38')]['syncCustomEvent']=function(_0x2c358a){var _0x256cd0=_['clone'](_0x2c358a);if(typeof _0x256cd0['motionChannel']===_0x8d1f('0x39')){_0x256cd0[_0x8d1f('0x3a')]=_0x8d1f('0x3b');}this[_0x8d1f('0x3c')](_0x256cd0);};Trigger[_0x8d1f('0x38')][_0x8d1f('0x2b')]=function(_0x53d1e9){if(this[_0x8d1f('0x10')][_0x53d1e9[_0x8d1f('0x3d')]]){this[_0x8d1f('0x20')](_0x53d1e9);}};Trigger[_0x8d1f('0x38')][_0x8d1f('0x3c')]=function(_0x171576){var _0x3f7499;for(var _0xc7a88c in this[_0x8d1f('0xf')]){if(this[_0x8d1f('0xf')][_0x8d1f('0x3e')](_0xc7a88c)){if(this['triggers'][_0xc7a88c][_0x8d1f('0x3f')]){_0x3f7499=this[_0x8d1f('0x40')](this[_0x8d1f('0xf')][_0xc7a88c],_0x171576);if(_0x3f7499){_['merge'](_0x171576,_0x171576['variables']);for(var _0x560cb9=0x0,_0x2663c7,_0x1a83b2,_0x5799db;_0x560cb9<this[_0x8d1f('0xf')][_0xc7a88c][_0x8d1f('0x41')][_0x8d1f('0x42')];_0x560cb9+=0x1){_0x2663c7=this[_0x8d1f('0xf')][_0xc7a88c][_0x8d1f('0x41')][_0x560cb9];if(this[_0x8d1f('0x10')][_0x171576[_0x8d1f('0x3d')]]){switch(_0x2663c7[_0x8d1f('0x43')][_0x8d1f('0x44')]()){case _0x8d1f('0x45'):break;case _0x8d1f('0x46'):case'browser':var _0x1d389a={};switch(barAndWebActions[_0x2663c7[_0x8d1f('0x47')]]){case'popup':_0x1d389a[_0x8d1f('0x48')]=_0x2663c7[_0x8d1f('0x49')];_0x1d389a[_0x8d1f('0x4a')]=this[_0x8d1f('0x12')][_0x2663c7['data2']]?Mustache['render'](this['templates'][_0x2663c7['data2']][_0x8d1f('0x4a')],_0x171576):_0x8d1f('0x4b');break;case'url':_0x1d389a[_0x8d1f('0x4c')]=this['buildUri'](_0x2663c7['data2'],_0x171576,_['isNil'](_0x2663c7[_0x8d1f('0x4d')])?!![]:parseInt(_0x2663c7[_0x8d1f('0x4d')],0xa));if(_[_0x8d1f('0x4e')](_0x2663c7[_0x8d1f('0x4f')])){_0x1d389a['location']='0';}else{_0x1d389a[_0x8d1f('0x50')]=_0x2663c7['data4'];_0x1d389a['windowWidth']=_[_0x8d1f('0x4e')](_0x2663c7[_0x8d1f('0x51')])?_0x8d1f('0x52'):_0x2663c7[_0x8d1f('0x51')];_0x1d389a[_0x8d1f('0x53')]=_[_0x8d1f('0x4e')](_0x2663c7[_0x8d1f('0x54')])?_0x8d1f('0x55'):_0x2663c7[_0x8d1f('0x54')];}break;case'winapp':_0x1d389a[_0x8d1f('0x56')]=_0x2663c7[_0x8d1f('0x49')]?Mustache[_0x8d1f('0x57')](_0x2663c7[_0x8d1f('0x49')],_0x171576):'';_0x1d389a[_0x8d1f('0x58')]=_0x2663c7[_0x8d1f('0x4d')]?Mustache[_0x8d1f('0x57')](_0x2663c7[_0x8d1f('0x4d')],_0x171576):'';break;}this[_0x8d1f('0x35')](util[_0x8d1f('0x59')](_0x8d1f('0x5a'),this[_0x8d1f('0x10')][_0x171576[_0x8d1f('0x3d')]][_0x8d1f('0x5b')]),util[_0x8d1f('0x59')](_0x8d1f('0x5c'),_0x2663c7['action'][_0x8d1f('0x44')](),barAndWebActions[_0x2663c7[_0x8d1f('0x47')]]),_[_0x8d1f('0x5d')](_0x1d389a,_0x171576));break;case _0x8d1f('0x5e'):this[_0x8d1f('0x35')](util[_0x8d1f('0x59')](_0x8d1f('0x5a'),this[_0x8d1f('0x10')][_0x171576[_0x8d1f('0x3d')]][_0x8d1f('0x5b')]),util[_0x8d1f('0x59')](_0x8d1f('0x5f'),_0x2663c7[_0x8d1f('0x43')]['toLowerCase']()),_[_0x8d1f('0x5d')]({'ProjectId':parseInt(_0x2663c7[_0x8d1f('0x47')],0xa)},_0x171576));break;default:this[_0x8d1f('0x35')](util[_0x8d1f('0x59')](_0x8d1f('0x5a'),this['agents'][_0x171576[_0x8d1f('0x3d')]][_0x8d1f('0x5b')]),util[_0x8d1f('0x59')](_0x8d1f('0x5f'),_0x2663c7['action'][_0x8d1f('0x44')]()),_[_0x8d1f('0x5d')]({},_0x2663c7,_0x171576));}}switch(_0x2663c7[_0x8d1f('0x43')]['toLowerCase']()){case'contactmanager':cmContact[_0x8d1f('0x60')](this[_0x8d1f('0x10')][_0x171576[_0x8d1f('0x3d')]],this[_0x8d1f('0xf')][_0xc7a88c],_0x2663c7,_0x171576);break;case _0x8d1f('0x61'):integration['exec'](_0x2663c7,_0x171576,this[_0x8d1f('0x62')],this[_0x8d1f('0x10')][_0x171576['interface']],this[_0x8d1f('0x11')][_0x171576[_0x8d1f('0x63')]],this[_0x8d1f('0x13')][_0x171576[_0x8d1f('0x64')]]);break;case _0x8d1f('0x65'):urlforward['exec'](_0x2663c7,_0x171576);break;case _0x8d1f('0x66'):script[_0x8d1f('0x60')](_0x2663c7,_0x171576);break;}}}}}}};Trigger[_0x8d1f('0x38')][_0x8d1f('0x67')]=function(_0x4578a8,_0x131787,_0x3aa495){var _0x673b2=url['parse'](Mustache[_0x8d1f('0x57')](_0x4578a8,_0x131787),!![]);if(_0x3aa495){_[_0x8d1f('0x5d')](_0x673b2[_0x8d1f('0x68')],_0x131787);}delete _0x673b2[_0x8d1f('0x69')];var _0x3ed8bb=url[_0x8d1f('0x59')](_0x673b2);_0x3ed8bb=_0x3ed8bb['replace'](/\/\?/g,'?');return _0x3ed8bb;};Trigger['prototype'][_0x8d1f('0x40')]=function(_0x470407,_0x411841){var _0x302203=!![];var _0x11a695=!![];var _0x2c67ff=![];if(_0x470407[_0x8d1f('0x6a')]===_0x411841[_0x8d1f('0x3a')]){_0x2c67ff=!![];}if(_0x470407[_0x8d1f('0x6b')][_0x8d1f('0x42')]){_0x302203=_['every'](_0x470407[_0x8d1f('0x6b')],this[_0x8d1f('0x6c')](_0x411841,_0x470407[_0x8d1f('0x6a')]));}if(_0x470407['AnyConditions'][_0x8d1f('0x42')]){_0x11a695=_[_0x8d1f('0x6d')](_0x470407[_0x8d1f('0x6e')],this[_0x8d1f('0x6c')](_0x411841,_0x470407[_0x8d1f('0x6a')]));}return _0x2c67ff&&_0x302203&&_0x11a695;};Trigger['prototype'][_0x8d1f('0x6c')]=function(_0x42b3fc,_0x16f9f1){return function(_0x42333f){switch(_0x42333f[_0x8d1f('0x6f')]){case _0x8d1f('0x70'):if(_0x42b3fc[_0x8d1f('0x6a')]===_0x16f9f1){if(_0x16f9f1==='chat'){return _0x42b3fc[_0x8d1f('0x71')]?operators[_0x42333f['operator']](Number(_0x42333f[_0x8d1f('0x72')]),_0x42b3fc['ChatWebsiteId']):![];}else{return _0x42b3fc[_[_0x8d1f('0x73')](_0x16f9f1)+'AccountId']?operators[_0x42333f[_0x8d1f('0x74')]](Number(_0x42333f[_0x8d1f('0x72')]),_0x42b3fc[_['upperFirst'](_0x16f9f1)+_0x8d1f('0x75')]):![];}}break;case _0x8d1f('0x76'):case _0x8d1f('0x77'):if(_0x42b3fc[_0x8d1f('0x6a')]===_0x16f9f1){return _0x42b3fc[_0x8d1f('0x78')]?operators[_0x42333f[_0x8d1f('0x74')]](_0x42333f[_0x8d1f('0x72')],_0x42b3fc[_0x8d1f('0x78')]):![];}break;case _0x8d1f('0x63'):return _0x42b3fc[_0x8d1f('0x63')]?operators[_0x42333f[_0x8d1f('0x74')]](_0x42333f[_0x8d1f('0x72')],_0x42b3fc[_0x8d1f('0x63')]):![];case _0x8d1f('0x79'):return _0x42b3fc[_0x8d1f('0x7a')]?operators[_0x42333f[_0x8d1f('0x74')]](_0x42333f[_0x8d1f('0x72')],_0x42b3fc['membername']):![];case _0x8d1f('0x7b'):return _0x42b3fc['lastevent']?operators[_0x42333f[_0x8d1f('0x74')]](_0x42333f[_0x8d1f('0x72')],_0x42b3fc[_0x8d1f('0x7b')]):![];case _0x8d1f('0x64'):return _0x42b3fc[_0x8d1f('0x64')]?operators[_0x42333f[_0x8d1f('0x74')]](_0x42333f['value'],_0x42b3fc[_0x8d1f('0x64')]):![];case'mailSubstatus':if(_0x42333f[_0x8d1f('0x72')]===_0x8d1f('0x7c'))_0x42333f[_0x8d1f('0x72')]=null;return typeof _0x42b3fc[_0x8d1f('0x7d')]!==_0x8d1f('0x39')?operators[_0x42333f[_0x8d1f('0x74')]](_0x42333f['value'],_0x42b3fc[_0x8d1f('0x7d')]):![];case _0x8d1f('0x7e'):if(_0x42b3fc[_0x8d1f('0x6a')]===_0x16f9f1){return _0x42333f['value']===_0x8d1f('0x7f')&&_0x42333f[_0x8d1f('0x74')]==='equals'?!![]:![];}break;}return![];};};module[_0x8d1f('0x80')]=Trigger;